new新建类的指针的测试
BaseAgent *Agent
Agent =new BaseAgent;
new 返回新创建对象的指针。此处BaseAgent是一个类名。
问题:new是否创建了对象?如果创建了对象是否通过构造函数创建?
代码:
class aaa { public: aaa(int x, int y):a(x),b(y),c(0){} int c; int a; int b; private: };
#include "head.h" #include <iostream> int main() { aaa *pig; pig = new aaa(7,8); std::cout<<>pig->c<<std::endl; std::cout<<pig->a+pig->b<<std::endl; }
输出: 0
15
结论:用new建立新对象需要同构造函数的形参列表一致。
除此之外,BaseAgnet Agent这种定义对象的方法同样在内存中分配了空间。