C++ 调用默认构造函数 类基{ int i; 公众: base() { i=10; cout
第二个是声明一个返回基对象的函数a():-C++ 调用默认构造函数 类基{ int i; 公众: base() { i=10; cout,c++,C++,第二个是声明一个返回基对象的函数a():-base a声明一个类型为base的变量a,并调用其默认构造函数(假设它不是内置类型) base a();声明一个函数a,该函数不接受任何参数并返回类型base 这是因为该语言基本上规定,在出现这种歧义的情况下,任何可以解析为函数声明的内容都应该如此解析。对于更复杂的情况,您可以搜索“C++最麻烦的解析” 因为这实际上我更喜欢新X;过新的X.(;)>;因为它与非新声明一致。C++中的< P>,可以用两种方式创建对象: 自动(静态) 动态的 第一个使用以下
base a
声明一个类型为base
的变量a
,并调用其默认构造函数(假设它不是内置类型)
base a();
声明一个函数a
,该函数不接受任何参数并返回类型base
这是因为该语言基本上规定,在出现这种歧义的情况下,任何可以解析为函数声明的内容都应该如此解析。对于更复杂的情况,您可以搜索“C++最麻烦的解析”
因为这实际上我更喜欢<代码>新X;过<代码>新的X.(;)>;<代码>因为它与非新声明一致。C++中的
< P>,可以用两种方式创建对象:class base {
int i;
public:
base()
{
i = 10;
cout << "in the constructor" << endl;
}
};
int main()
{
base a;// here is the point of doubt
getch();
}
对象一离开当前范围就被删除
动态版本使用指针,您有权删除它:
base a; //Uses the default constructor
base b(xxx); //Uses a object defined constructor
应该是<代码> Base*a=新的基()/>代码>?这个答案与问题是否真的相关?你没有地址“代码> BASE BE())/CUD>使用C++中的默认构造函数动态分配对象的正确方法是什么?它是代码> BASE*A=新BASE()或
base*a=new base;
?有什么区别吗?您可以在以下位置看到:new X;
与new X()的作用相同吗?
base *a = new base(); //Creates pointer with default constructor
base *b = new base(xxx); //Creates pointer with object defined constructor
delete a; delete b;