cuốn sách gpt4 ai đã làm

前置自增运算符的C++继承

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 14:47:59 26 4
mua khóa gpt4 Nike

Tôi có hai lớp sau:

     lớpMyClass
{
bạn ostream& operator<<(ostream&, const MyClass& );
bạn int operator+(const MyClass &, const MyClass &);
public:
MyClass(const int);
MyClass(const int, const int);
MyClass (const MyClass *, const MyClass *);
~Lớp của tôi();
MyClass& toán tử++();
void printValue();
void setValue(int);
int getValue() const;
private:
giá trị int;
};


lớp DevClass : MyClass công khai
{
public:
DevClass(const int, const char *s);
char getId() const;
void setId(char *s);

private:
id ký tự;
};

Việc triển khai toán tử++ như sau:

 MyClass& MyClass::operator++() 
{
cái này->giá trị +=1;
return *this;
}

Bây giờ nếu tôi sử dụng toán tử trên lớp dẫn xuất:

 DevClass *dev=new DevClass(10,'c');
++nhà phát triển;

"dev" dường như trỏ đến một nơi khác trong bộ nhớ. Tại sao? Tại sao toán tử bạn bè không được kế thừa? Đây là bài tập trên lớp nên tôi cần giải bài toán này.
Cảm ơn!

câu trả lời hay nhất

nhà phát triển Đúng Lớp phát triển* gõ, đó là một con trỏ, không phải lớp của bạn. ý bạn là ++(*nhà phát triển) 吗?

Về tính kế thừa C++ của toán tử tăng tiền tố, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/33241033/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress