相关疑难解决方法(0)

1730
推荐指数
11
解决办法
54万
查看次数

什么是复制省略和返回值优化?

什么是复制省略?什么是(命名)返回值优化?他们意味着什么?

它们会在什么情况下发生?有什么限制?

c++ optimization c++-faq return-value-optimization copy-elision

350
推荐指数
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万
查看次数

什么是C++中的前向声明?

在:http://www.learncpp.com/cpp-tutorial/19-header-files/

提到以下内容:

add.cpp:

int add(int x, int y)
{
    return x + y;
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中:

#include <iostream>

int add(int x, int y); // forward declaration using function prototype

int main()
{
    using namespace std;
    cout << "The sum of 3 and 4 is " << add(3, 4) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我们使用了前向声明,以便编译器在编译时知道" add"是什么main.cpp.如前所述,为要在其他文件中使用的每个函数编写前向声明可能会很快变得乏味.

你能进一步解释" 前瞻性宣言 "吗?如果我们在main()函数中使用它会有什么问题?

c++ declaration forward-declaration

202
推荐指数
4
解决办法
25万
查看次数

如何在Java中使用指针?

我知道Java没有指针,但我听说Java程序可以用指针创建,这可以由少数java专家完成.这是真的吗?

java pointers unsafe

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

强制编译器忽略程序中的某些行

假设我有10,000行C++代码.此代码的200行用于测试目的(例如,检查程序并显示错误消息).

在C++中有没有办法忽略或考虑代码的某些行(可能有预处理器关键字)?

c++ preprocessor-directive

50
推荐指数
4
解决办法
1万
查看次数

为什么堆上的内存分配比堆栈上的内存慢?

我多次被告知过这个问题.但我不知道为什么...从堆中分配内存时会涉及多少额外费用?它与硬件有关吗?它与CPU周期有关吗?如此多的猜测,但没有确切的答案......有人可以给我一些细节吗?

就像"放松"所说的那样,Heap数据结构比Stack更复杂.在我看来,一些内存空间在它开始运行时被分配给一个线程作为它的堆栈,而堆由进程内的所有线程共享.这种范例需要一些额外的机制来管理每个线程对共享堆的使用,例如垃圾收集.我对吗?

c stack memory-management

44
推荐指数
3
解决办法
1万
查看次数

c ++类可以将自己包含为成员吗?

我试图通过在C++中编写python例程来加速它,然后使用ctypes或cython来使用它.

我是c ++的新手.我正在使用Microsoft Visual C++ Express,因为它是免费的.

我计划实现一个表达式树,以及一个以后缀顺序评估它的方法.

我遇到的问题是:

class Node {
    char *cargo;
    Node left;
    Node right;
};
Run Code Online (Sandbox Code Playgroud)

我无法宣布leftright作为Node类型.

c++

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

指针有什么意义?

当我可以声明变量时,C++中的指针有什么意义?什么时候适合使用它们?

c++ pointers

13
推荐指数
2
解决办法
1906
查看次数

在C++ 11后的现代C++中使用原始指针

鉴于C++ 11标准现在得到了大多数体面编译器的良好支持,2014年使用原始指针的主要原因有哪些?

我确定了几个场景:

  1. 您正在扩展大量使用原始指针的遗留代码库,并且您希望保持样式的一致性.

  2. 您正在使用仅导出原始指针的库,但我猜您仍然可以使用强制转换.

  3. 您希望利用指针的功能来提供多个级别的间接.(我不太清楚C++ 11是否足以知道是否可以使用智能指针或使用其他技术来实现.)

您认为哪些其他场景适合使用指针?

你今天甚至会建议学习一般的指针吗?

c c++ pointers c++11

12
推荐指数
4
解决办法
9834
查看次数