1 A* pa = new A(); 2 pa->foo(); 3 B* pb = (B*)pa; //此时pa仍然是指向A的类对象,因此pb也指向A的类对象
1 #include <iostream> 2 using namespace std; 3 4 class A 5 { 6 public: 7 void virtual foo() 8 { 9 cout << "A" << endl; 10 } 11 }; 12 class B :public A 13 { 14 public: 15 void virtual foo() //这里不加virtual也是可以的,只要基类中加派生类同名函数自动成为虚函数 16 { 17 cout << "B" << endl; 18 } 19 }; 20 int main() 21 { 22 A* pa = new A(); //创建指向A类对象的指针pa 23 pa->foo(); //由于pa是基类指针,所以执行基类A中的函数foo() 24 B* pb = (B*)pa; //将pa转换为B类型并创建B类型指针,最后将pa赋值给pb,但是pa仍然指向基类的类对象,所以pb也指向基类的类对象 25 pb->foo(); //执行基类A中的函数foo() 26 delete pa, pb; 27 28 pa = new B(); //此时pa指向了派生类的类对象 29 pa->foo(); //执行派生类中的函数foo() 30 pb = (B*)pa; 31 pb->foo(); //执行派生类中的函数foo() 32 33 system("pause"); 34 return 0; 35 }
1 #include <stdio.h> //for printf() 2 #include <iostream> //for system() 3 4 int main() 5 { 6 printf("%f\n", 5); 7 printf("%d\n", 5.0); 8 9 system("pause"); 10 return 0; 11 }
1 #include <iostream> //for system() 2 using namespace std; 3 int main() 4 { 5 cout << "char" << " " << "int" << " " << "float" << " " << "double" << " " << "long" << " " << "short" << "\t\n"; 6 cout << sizeof(char)<<" " << sizeof(int) << " " << sizeof(float) << " " << sizeof(double) << " " << sizeof(long) << " " << sizeof(short) << "\t\n"; 7 8 system("pause"); 9 return 0; 10 }
原文:https://www.cnblogs.com/YiYA-blog/p/12630554.html