相关疑难解决方法(0)

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案索引,它们是最有意义的顺序:

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ operator-overloading operators c++-faq

2074
推荐指数
8
解决办法
88万
查看次数

私有成员与C++中的临时变量

假设您有以下代码:

int main(int argc, char** argv) {
    Foo f;
    while (true) {
        f.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

Foo的以下两种实现中的哪一种是首选?

解决方案1:

class Foo {
    private:
        void doIt(Bar& data);
    public:
        void doSomething() {
            Bar _data;
            doIt(_data);
        }
};
Run Code Online (Sandbox Code Playgroud)

解决方案2:

class Foo {
    private:
        Bar _data;
        void doIt(Bar& data);
    public:
        void doSomething() {
            doIt(_data);
        }
};
Run Code Online (Sandbox Code Playgroud)

用简单的英语:如果我有一个类经常被调用的方法,并且这个方法定义了大量的临时数据(复杂类的一个对象,或者大量的简单对象),我应该声明这个数据作为班级的私人成员?

一方面,这将节省在每次调用上构建,初始化和破坏数据所花费的时间,从而提高性能.另一方面,它践踏了"私有成员=对象的状态"原则,并可能使代码更难理解.

答案取决于Bar类的大小/复杂程度吗?声明的对象数量如何?什么时候好处超过了缺点?

c++

5
推荐指数
3
解决办法
1402
查看次数

标签 统计

c++ ×2

c++-faq ×1

operator-overloading ×1

operators ×1