Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么构造函数不是';你没打电话吗?_C++ - Fatal编程技术网

C++ 为什么构造函数不是';你没打电话吗?

C++ 为什么构造函数不是';你没打电话吗?,c++,C++,当类的对象作为参数传递给按值获取参数的函数时,为什么不调用类A的构造函数 class A { public: A() { cout << "A\n"; } }; void f_n(A val) { } int main() { A a; f_n(a); return 0; } A类 { 公众: () { cout这是因为在此上下文中使用了复制构造函数。要检查它,请添加显式实现: A(A const&) {

当类的对象作为参数传递给按值获取参数的函数时,为什么不调用类A的构造函数

class A
{
public:
    A()
    {
        cout << "A\n";
    }
};

void f_n(A val)
{

}

int main()
{
    A a;
    f_n(a);
    return 0;
}
A类
{
公众:
()
{

cout这是因为在此上下文中使用了复制构造函数。要检查它,请添加显式实现:

A(A const&)
{
    std::cout << "A const&\n";
}  
A(常数&)
{

std::cout,因为复制构造函数被调用。-看,你怎么知道没有调用构造函数?