为什么在C ++中允许将类对象指针作为成员变量,而不是类对象本身?

时间:2017-07-23 05:18:51

标签: c++

请考虑这个例子:

#include <bits/stdc++.h>
using namespace std;

class Example{
    private:
        int var1;
        Example oak;
};

没关系,但不是这个

String a="ABC"

为什么指向同一个类对象的指针作为成员变量是可以的,但不是类对象本身作为成员变量?

你能给我一些实际案例,其中具有与成员变量相同的类对象是有用的吗?

2 个答案:

答案 0 :(得分:0)

你会有一个无限的对象定义循环。你认为你将如何停止定义橡木实例?

您需要显式创建指针,以便控制创建。

答案 1 :(得分:0)

嗯,你是对的,一个类不能有自己的对象,因为如果我们这样做,编译器就无法计算对象的大小,因为它将进入无限循环。 例如: 我初始化main()对象中的一个对象将包含另一个对象,另一个对象将包含另一个对象,编译器无法计算大小。 但是,正如我们所知,指针具有固定大小,它指向一个int char或一个对象,因此编译器将能够计算其大小。