使用点运算符访问构造函数

San*_*Pai 1 c++

我是c ++的初学者,我试图通过创建一个对象并通过点运算符访问它来访问构造函数方法.在这个过程中我遇到了错误.这是正常的吗?我只是想尝试一下.如果有办法做同样的事情请让我知道程序,我用谷歌搜索但找不到任何解决方案.下面是代码.

#include <iostream>

using namespace std;

class box
{
  public:
    box(double );
  private:
    double width;
};

 box::box(double w)
{
  cout<<"\n I'm inside the constructor ";
  width=w;
}


box::~box()
{
  cout<<"\n I'm inside the desstructor ";

}


int main()
{
  box box1;
  box1.box(10);
}
Run Code Online (Sandbox Code Playgroud)

For*_*veR 5

是的,这是正常的,你不能手动调用构造函数.这不是一个功能.在已经构造的对象上调用c-tor是没有意义的.

因为构造函数没有名称,所以在名称查找期间永远不会找到它们; 但是,使用函数表示法(5.2.3)的显式类型转换将导致调用构造函数来初始化对象.[注意:对于类类型对象的初始化,请参见12.6. - 结束说明]