gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:59 26 4
gpt4 key购买 nike

我有以下两个类:

     class MyClass
{
friend ostream& operator<<(ostream&, const MyClass& );
friend int operator+(const MyClass &, const MyClass &);
public:
MyClass(const int );
MyClass(const int, const int);
MyClass (const MyClass *, const MyClass *);
~MyClass();
MyClass& operator++();
void printValue();
void setValue(int);
int getValue() const;
private:
int value;
};


class DevClass : public MyClass
{
public:
DevClass(const int, const char *s);
char getId() const;
void setId(char *s);

private:
char id;
};

operator++ 的实现如下:

 MyClass& MyClass::operator++() 
{
this->value +=1;
return *this;
}

现在,如果我对派生类使用运算符:

 DevClass *dev=new DevClass(10,'c');
++dev;

“dev”似乎指向内存中的其他地方。为什么 ?为什么 friend 运算符不被继承?这是类练习,所以我需要解决这个问题。
谢谢!

最佳答案

devDevClass * 类型,它是一个指针,而不是您的类。您是说 ++(*dev) 吗?

关于前置自增运算符的C++继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33241033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com