我有一个类 Complex,我试图重载 istream 运算符 >> 以允许用户以“(a,b)”的形式输入复数。下面是我的头文件和我的实现。现在,我收到一个错误,说我的重载 >> 函数无法访问真实或虚构的数据成员,因为它们不可访问,即使我在类头文件中将它们声明为朋友。谁能解释一下我没有看到的内容?
头文件:
// Complex class definition.
#ifndef COMPLEX_H
#define COMPLEX_H
class Complex
{
friend std::ostream &operator<<(std::ostream &, const Complex &);
friend std::istream &operator>>(std::istream &, const Complex &);
public:
explicit Complex( double = 0.0, double = 0.0 ); // constructor
Complex operator+( const Complex & ) const; // addition
Complex operator-( const Complex & ) const; // subtraction
//Complex operator*(const Complex &); // function not implemented yet
private:
double real; // real part
double …Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,但我是C++和编程的新手,我在这里找不到答案.我知道在C++中,{}在某些情况下是可选的.例如,如果您有一个只执行一个操作的简单if语句,则不需要用{}括起它.
我只是想知道额外的括号是否对程序的速度有任何影响(即使是最小的).我问的原因是因为我总是在我的所有语句中包括大括号,即使不是必需的,只是因为我想阻止我的代码.
我个人的偏好是:
if (foo)
{
bar;
}
Run Code Online (Sandbox Code Playgroud)
而不是简单
if (foo)
bar;
Run Code Online (Sandbox Code Playgroud)
我只是喜欢阅读代码时的样子.但是,如果这实际上对代码的速度有影响,那可能不是一个好主意.有谁知道额外的括号是否会影响速度?谢谢.