关于运算符重载的问题
生活随笔
收集整理的這篇文章主要介紹了
关于运算符重载的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在設(shè)計(jì)類的時候,經(jīng)常用到運(yùn)算符的重載。運(yùn)算符 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; }編譯是出現(xiàn)錯誤:
error: ‘std::ostream& vector::operator<<(std::ostream&, const vector&)’ must take exactly one argument錯誤的原因:
operator<<是 stream 的成員,不能寫成自定義類成員。可定義成友員函數(shù)。
改正如下:
//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; }總結(jié)
以上是生活随笔為你收集整理的关于运算符重载的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Eigen 库写第一个程序
- 下一篇: 穿越五年的时空,重回三元湖畔