关于运算符重载的问题
生活随笔
收集整理的這篇文章主要介紹了
关于运算符重载的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在設計類的時候,經常用到運算符的重載。運算符 operate<< 重載容易出問題。
常見的錯誤:
//vevtor.h#include <iostream>class vector{ private:double x;double y; public:……std::ostream &operator<<(std::ostream &os, const vector &vec);…… }//vevtor.cpp…… std::ostream &vector::operator<<(std::ostream &os, const vector &vec) {std::cout << vec.x << "," << vec.y << std::endl; }編譯是出現錯誤:
error: ‘std::ostream& vector::operator<<(std::ostream&, const vector&)’ must take exactly one argument錯誤的原因:
operator<<是 stream 的成員,不能寫成自定義類成員??啥x成友員函數。
改正如下:
//vevtor.h#include <iostream>class vector{ private:double x;double y; public:……frind std::ostream &operator<<(std::ostream &os, const vector &vec);…… }//vevtor.cpp……std::ostream &vector::operator<<(std::ostream &os, const vector &vec) {std::cout << vec.x << "," << vec.y << std::endl;return os; }總結
以上是生活随笔為你收集整理的关于运算符重载的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Eigen 库写第一个程序
- 下一篇: 穿越五年的时空,重回三元湖畔