之前的C/C++基础一直很弱,所以打算再跟着再仔细学一遍C++
之前学C的时候当定义一个指针基本上都是直接指向了一个有效对象
int j = 5;
int* i;
i = &j;
最近在学c++的类的时候发现当创建了一个类以后还要再new一个类空间才能使用
但是为啥我 int* i 就不用在定义后 i = new int 呢?
class Jolly
{
public:
int score = 100;
};
int main()
{
Jolly* Test;
Test = new Jolly;
cout << Jolly.score << endl;
return 0;
}
看了几篇资料后知道当声明Jolly* Test;
时,只是声明了一个指向Jolly
类型对象的指针,但此时这个指针并没有指向任何有效的Jolly对象。
类是一种用户定义的类型,类对象通常包含数据成员和成员函数,这些成员需要在对象被正确构造后才能被访问。通过Test = new Jolly,
使用new
操作符动态分配了一个Jolly
类的对象,并将该对象的地址赋给Test。只有这样,Test才指向一个有效的Jolly
类对象,才能通过Test来访问Jolly类的成员
而其实在使用int* i的时候也是一样的道理,如果不使用写 i = new int 也是不能直接用的
这个是错误的!!!
int* K;
int L;
*K = 5;
L = *K;
cout << L << endl;