摘要:
定义用于为变量分配存储空间,还可以为变量指定初值,在一个程序中,变量有且仅有一个定义。声明用于向程序表明变量的类型和名字。可以使用extern关键字声明变量而不定义它。extern int i; //declares but does not define iint i; //declares and defines iextern声明不是定义,也不分配存储空间。只是说明变量定... 阅读全文
摘要:
有如下定义:class A {};class B : public A{};A* pA = new B;下列代码无法完成转换的是( )A) B* pB = static_cast<B*>(pA);B) B* pB = reinterpret_cast<B*>(pA);C) B* pB = dynamic_cast<B*>(pA);D) B* pB = (B*)p... 阅读全文
摘要:
下面代码执行后,正确的输出是( ) char *a ="Hello"; char b[6]="Hello"; if (a==b) { if (*a == *b) printf(“AA”); else printf(“BB”); } else { if (*a == *b) printf(“CC”); else printf(... 阅读全文
摘要:
#include<iostream>#include<complex>using namespace std;class Base{public:virtual void f( int iParam){cout << "Base::f(int)" << endl;};virtual void f( double dParam){cout <&l... 阅读全文
摘要:
#include<iostream>using namespace std;class Base{public:virtual void g( int i = 10 ){cout << i << endl;};};class Derived: public Base{public:void g( int i = 20 ){cout << "Deriv... 阅读全文
摘要:
class A {public: virtual void op(); ……};class B : public A {public: void op(); // 在这个函数中会调用anotherOperator,但anotherOperator不是虚函数 void anotherOp(); ……};A* a = new B;a-&... 阅读全文
摘要:
类的sizeof大小一般是类中的所有成员的sizeof大小之和,这个就不用多说。不过有两点需要注意:1)当类中含有虚成员函数的时候,例如:class B{float a;public:virtual void fun(void);}此时sizeof(B)的大小为8,而不是4。因为在类中隐藏了一个指针,该指针指向虚函数表,正因为如此,使得C++能够支持多态,即在运行时绑定函数的地址。2)另一个要注意... 阅读全文
摘要:
C++函数重定义、重载、重写1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。 1) 被重写的函数不能是 static 的。必须是 virtual 的 ( 即函数在最原始的基类中被声明为 virtual ) 。 2) 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型)3) 重写函数的访问修饰符可以不同。尽管 virtual 是 p... 阅读全文
摘要:
The following definition of VARIANT is described in OAIDL.H automation header file:struct tagVARIANT{ union { struct __tagVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; unio... 阅读全文
摘要:
1. 共用体声明和共用体变量定义 共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义 共用体声明和共用体变量定义与结构体十分相似。其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名;共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在unio... 阅读全文