没有名称,构造函数,析构函数的类

时间:2013-12-06 10:12:59

标签: c++

我读过没有名字的课程......

得到了

class
{ 
  int i;
};

未被取消

class
{ 
  int i;
}A;

有效。 但是如何拥有:1)构造函数和:2)析构函数和:3)如何作为参数传递???

3 个答案:

答案 0 :(得分:5)

如果该类未命名,则它不能具有自定义构造函数/析构函数(尽管编译器将为您生成通常的默认值)。这意味着你不能在构造时传递参数。但是,可能没有什么可以阻止你(1)在类中添加一个或多个方法以在构造之后将数据传递给它,或者(2)首先给类命名。

答案 1 :(得分:0)

您注定在本地使用该类并仅通过本地对象A访问它。

您可以在模板中使用它:

template <typename T>
inline void print(const T& a) {
    std::cout << a.x << std::endl;
}

int main()
{
    class {
        public: int x;
    } a;
    a.x = 1;
    print(a);
}

答案 2 :(得分:0)

第二件事是有效的,但你不能访问会员,因为它是私人的。它仅在您创建了该类类型的对象A时才有效。

要有一个构造函数,我认为你必须给这个类命名。使用此:

class myclass
{ 
  int i;
  public:
     myclass(int a) //This is the constructor
     {
           i = a;
     }
     ~myclass()  //This is the destructor
     {
           //Whatever you want to do on destroying the object
     }

};

并按如下方式实例化该类:

myclass A(10);

或类似的。

注意:这只是我的解释,它可以通过许多其他方式完成。