摘要:
#include #include #include #include using namespace std;class parent{public:virtual void output();virtual void aaa();};void parent::output(){coutoutput();return 0;}输出sonbbbsonbbb构造父类引用或者指针,在运行时才决定调用哪一个子类还是本身的函数,当没有virtual时,调用自己 的函数。当有virtual时调用子类的同名复写函数。。。。附加题一颗完全2叉树有699个节点,求叶子结点?对于完全二叉树,根节点到上一层节点的所 阅读全文
摘要:
#include using namespace std;class A{ public: int age; static int count; public: A(int i=2) : age(i) { this->age = i; cout using namespace std;class A{ public: int age; static int count; public: A(int i=2) : age(i) { this->age = i; cout << "gou zao "<<A::count << &q 阅读全文
摘要:
浅拷贝就是对象的数据成员之间的简单赋值,如你设计了一个没有类而没有提供它的复制构造函数,当用该类的一个对象去给令一个对象赋值时所执行的过程就是浅拷贝,如:class A { public: A(int _data) :data(_data){} A(){}private: int data; };int main() { A a(5), b = a; // 仅仅是数据成员之间的赋值 }这一句b = a;就是浅拷贝,执行完这句后b.data = 5;如果对象中没有其他的资源(如:堆,文件,系统资源等),则深拷贝和浅拷贝没有什么区别,但当对象中有这些资源时,例子:class A { public: 阅读全文
摘要:
问题,which is true???每个类都有一个无参构造函数每个类都有一个拷贝构造函数每个类可以有多个构造函数每个类可以多个析构函数默认构造函数 析构函数 拷贝构造函数 赋值运算符(operator=) 取址运算符(operator&)(一对,一个非const的,一个const的)当然,所有这些只有当被需要才会产生。比如你定义了一个类,但从来定义过该类的对象,也没使用过该类型的函数参数,那么基本啥也不会产生。在比如你从来没有进行过该类型对象之间的赋值,那么operator=不会被产生。class Empty{public: Empty(); // 缺省构造函数 Empty(co.. 阅读全文