thể trùng lặp:
Why is there no call to the constructor?Sự khác nhau giữa Test t; và Kiểm tra t() ;? nếu thử nghiệm là một lớp
Tôi đang sử dụng Visual studio 2012, Giả thử nghiệm là một lớp
class Test
{
};
Khi tôi tạo một đối tượng mới Kiểm tra, sự khác biệt của hai cách sau đây là gì?
cách 1
Test t;
cách 2
Test t();
Tôi có câu hỏi này trong các mã dưới đây, ban đầu, tôi đã xác định một thể hiện của A theo cách 2, tôi đã chỉ có một lỗi vì B không cung cấp một hàm tạo mặc định, nhưng khi tôi định nghĩa nó theo cách 1, tôi nhận được một lỗi bổ sung.
class B
{
B(int i){}
};
class A
{
A(){}
B b;
};
int main(void)
{
A a(); // define object a in way 2
getchar() ;
return 0 ;
}
nếu tôi xác định một trong cách 1
A a;
tôi sẽ nhận lỗi khác nói
lỗi C2248: 'A :: A': không thể truy cập thành viên tin khai báo trong lớp 'A'
Vì vậy, tôi đoán phải có một số khác biệt tween hai cách.
+1 cho hình ảnh :-) –
tốt, một câu hỏi ngu ngốc, tôi chắc chắn tôi biết rằng trước đây, nhưng ... nó không phải là ngày của tôi hôm nay,: ( – zdd
@zdd nó xảy ra. –