sách gpt4 ai đã đi

Có sự khác biệt nào giữa C c; và C c = C();?

In lại 作者:塔克拉玛干 更新时间:2023-11-02 23:43:01 42 4
mua khóa gpt4 Nike

#include
sử dụng không gian tên std;

class C{
riêng tư:
int value;
công cộng:
C(){
value = 0;
cout<<"default constructor"<<>
}
C(const C& c){
value = c.value;
cout<<"copy constructor"<<>
}
};
int main(){
C c1;
C c2 = C();
}

Đầu ra:

默认构造函数

默认构造函数

câu hỏi:

C c1; 显然会调用默认构造函数,对于 C c2 = C(); 我以为会调用默认构造函数来初始化一个临时对象,然后复制构造函数将调用初始化c2,看来我错了。为什么?

1 Câu trả lời

这是一个复制省略的例子——基本上允许编译器优化掉复制。此处描述: http://en.cppreference.com/w/cpp/language/copy_elision

关于c++ - C c;之间有什么区别吗?和 C c = C();?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861561/

42 4 0
Bài viết được đề xuất: c++ - clang-format 重写 WebKit 风格的多行注释
Bài viết được đề xuất: linux - 无法在 SUSE Linux 10.0 上构建 "cyrus-sasl-2.1.23"
Bài viết được đề xuất: android - BusyBox 帮助,ip 命令
Bài viết được đề xuất: c++ valgrind在hello world中显示内存泄漏
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com