关于 对象的声明 及 指针对象

对象声明可以有两种:

a. 通过 类名 对象名;声明, 该声明后得到的对象已经隐式默认初始化了,分配了内存地址,并且已经存有了默认初始化后的类成员初始化值。例如 FirstStruct test; 之后就可以对FirstStruct的成员变量进行访问了: test.age.push_back(15);

b. 通过对象指针来声明,类名 *对象指针名; 通过指针申明的对象没有初始化,只是分配了一个指针名,并没有进行初始化,即没有分配内存空间,所以需要用 new 进行初始化操作FirstStruct *ptest; test->push_back(30);是错误的, 必须在声明对象后,new初始化, 对象指针可以用 new初始化,也可以用其他同类对象的引用来初始化,参见c。

FirstStruct *ptest; ptest = new FirstStruct(); ptest->age.push_back(10);

c. 也可以将同一个类对象的引用 赋给指针对象,例如: FirstStruct test; FirstStruct *ptest = &test; 之后就可以通过指针ptest ->age.push_back(40); 直接对test对象的成员变量进行操作了。

d. 声明的指针的类型必须与所要指向对象/变量的地址内所存的类型一致。例如: bool *pbool = &test.age.push_back(15); 是错的,因为test.age是int型 vector, 而bool型的指针不能指向一个int型vector变量的地址,bool *pbool = &test.sexual;则可以,

pbool就指向了test对象的bool型成员变量sexual的地址了.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值