Tại sao nó hoạt động để trả lại int
trong phương thức B minus
nếu phương pháp được cho là trả về một đối tượng thuộc loại B
?Tại sao nó hoạt động để trả về một int trong một phương thức mà trả về một đối tượng?
#include <iostream>
class B
{
public:
int a;
public:
B(int i=0)
{
a=i;
}
B minus()
{
return (1-a);
}
};
int main()
{
B x(18);
x = x.minus();
std::cout << x.a << '\n';
return 0;
}
Bạn đã không đánh dấu constructor 'explicit' của bạn. – user2357112
Nhìn vào hàm tạo 'B' của bạn. 'B' được xây dựng như thế nào? – PaulMcKenzie
Tôi giả sử vì hàm tạo có int, nó ngầm xây dựng từ int, là tốt. –