小编sbi*_*sbi的帖子

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

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

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

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

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

使用前进的优点

在完美转发中,std::forward用于转换命名的右值引用t1t2未命名的右值引用.这样做的目的是什么?inner如果我们离开t1&t2作为左值,那将如何影响被调用的函数?

template <typename T1, typename T2>
void outer(T1&& t1, T2&& t2) 
{
    inner(std::forward<T1>(t1), std::forward<T2>(t2));
}
Run Code Online (Sandbox Code Playgroud)

c++ c++-faq rvalue-reference perfect-forwarding c++11

411
推荐指数
6
解决办法
6万
查看次数

249
推荐指数
7
解决办法
7万
查看次数

我何时使用点,箭头或双冒号来引用C++中的类的成员?

即将从其他C来源的语言(如Java或C#)到C++,它是第一个非常混乱的是C++有三种方式来引用类的成员:a::b,a.b,和a->b.我什么时候使用这些运营商中的哪一个?

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

c++ c++-faq

237
推荐指数
4
解决办法
7万
查看次数

我什么时候使用哪种指针?

好吧,所以我最后一次以C++为生,std::auto_ptr所有的std lib都可用,而且boost::shared_ptr风靡一时.我从未真正研究过提供的其他智能指针类型.我知道C++ 11现在提供了一些类型的提升,但不是全部.

那么有人有一个简单的算法来确定何时使用哪个智能指针?优选地包括关于哑指针(诸如原始指针T*)和其他增强智能指针的建议.(像这样的东西会很棒).

c++ pointers smart-pointers c++-faq c++11

224
推荐指数
4
解决办法
3万
查看次数

类模板中的静态成员初始化

我想这样做:

template <typename T>
struct S
{
    ...
    static double something_relevant = 1.5;
};
Run Code Online (Sandbox Code Playgroud)

但我不能因为something_relevant不是整体类型.它不依赖于T,但现有代码依赖于它是静态成员S.

由于S是模板,我不能将定义放在编译文件中.我该如何解决这个问题?

c++ static templates

138
推荐指数
3
解决办法
8万
查看次数

避免C++内存泄漏的一般准则

有哪些一般提示可以确保我不会在C++程序中泄漏内存?我如何确定谁应该释放已动态分配的内存?

c++ memory memory-management raii

127
推荐指数
10
解决办法
12万
查看次数

重载成员访问运算符 - > ,.*(C++)

据我所知大多数运算符重载,与成员访问运营商外->,.*,->*等.

特别是,传递给这些操作符函数的内容以及应返回的内容是什么?

操作员如何运作(例如operator->(...))知道所指的成员是什么?可以知道吗?它甚至需要知道吗?

最后,是否需要考虑常见因素?例如,当重载类似的东西时operator[],通常你需要const和非const版本.成员访问运算符是否需要const和非const版本?

c++ operator-overloading c++-faq

119
推荐指数
5
解决办法
8万
查看次数

如何重载std :: swap()

std::swap()在排序甚至分配期间被许多std容器(例如std::liststd::vector)使用.

但是std实现swap()非常普遍,而且对于自定义类型来说效率很低.

因此,通过std::swap()使用自定义类型特定实现进行重载可以获得效率.但是如何实现它以便std容器使用它?

c++ optimization performance stl c++-faq

112
推荐指数
4
解决办法
3万
查看次数

在C++中复制构造函数和=运算符重载:可能是一个常见的函数吗?

自复制构造函数

MyClass(const MyClass&);
Run Code Online (Sandbox Code Playgroud)

和=运算符重载

MyClass& operator = (const MyClass&);
Run Code Online (Sandbox Code Playgroud)

有几乎相同的代码,相同的参数,只有不同的返回,是否有可能有一个共同的功能,他们都使用?

c++ c++-faq variable-assignment copy-constructor

81
推荐指数
2
解决办法
7万
查看次数