首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 宣言对象

2012-07-05 
C++ 声明对象classA AclassA *A都可以声明对象,为什么我用classA声明一个对象A,不调用new classA()初始

C++ 声明对象
classA A;
classA *A;
都可以声明对象,为什么我用classA声明一个对象A,不调用new classA()初始化也能使用classA的成员啊?这不是违背了面向对象的原则了吗?一个对象还没有初始化时不能使用的?

[解决办法]
一个对象没有初始化可以使用,不过里面都是一些随机值,没有意义!
[解决办法]
classA A; 声明对象,已分配内存 ..可以直接使用成员了
classA *A; 声明对象指针,没有分配空间
[解决办法]
第一种声明隐式调用了类的默认构造函数(即不需要实参或者显式实参的构造函数),所以已经初始化了
可以使用。
但第二个只是声明了一个指针,但未定义其指向哪里,所以不能使用,需要用new A()来获得一个明确的地址。
[解决办法]
声明隐式调用了类的默认构造函数
[解决办法]
来晚了:(
[解决办法]
上面的问题 跟C差不多的语法,只不过C++先进一点。。
[解决办法]

探讨
classA A;  声明对象,已分配内存  ..可以直接使用成员了
classA *A; 声明对象指针,没有分配空间

[解决办法]
classA *A; 
你申明了一个class的指针,但是指针指向哪个对象没有说明,也就没有给指针分配空间!!
[解决办法]
classA A调用默认构造函数初始化(如果有,否则出错)。
而classA *A只是声明了一个指针
[解决办法]
classA A; 
调用默认构造函数,
classA *A;只是定义指针*A指向classA类
[解决办法]
你学JAVA的吧?

热点排行