|
额 想学下C++ 然后看到那个++运算符重载的时候发现 前置++重载能 实现cout 出来 后置++ cout << 的时候呢 就直接报错了 关键是不知道怎么解决 源代码如下 求坛内大佬给个解释。。。
- #include <iostream>
- using namespace std;
- class myoperator
- {
- friend ostream& operator<<(ostream& cout, myoperator& p1);
- public:
- int m_a;
- myoperator(int a) :m_a(a) {};
- myoperator& operator++();
- myoperator operator++(int);
- };
- ostream& operator<<(ostream& cout, myoperator& p1)
- {
- cout << "m_a = " << p1.m_a;
- return cout;
- }
- myoperator& myoperator::operator++()
- {
- this->m_a++;
- return *this;
- }
- myoperator myoperator::operator++(int)
- {
- myoperator tmp = *this;
- ++this->m_a;
- return tmp;
- }
- void test01()
- {
- myoperator p1(1);
- cout << ++p1 << endl;
- cout << p1++ << endl; //这句话错误 //错误E0349 没有与这些操作数匹配的 "<<" 运算符
- }
- int main(void)
- {
- test01();
- system("pause");
- return EXIT_SUCCESS;
- }
复制代码
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|