Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

7
解析/ proc /文件是否安全?
我想解析/proc/net/tcp/,但是安全吗? 我应该如何打开文件/proc/并从中读取文件,不要担心其他进程(或操作系统本身)会在同一时间对其进行更改?
152 c++  c  linux  unix  procfs 

8
您是否在Vim中调试C ++代码?怎么样?
问题是所有使用Vim开发C ++应用程序的人。 我生命中有一段时期,可以描述为“我讨厌Vim !!!”。 但是,在Microsoft开发IDE上长大后,我已经习惯了这些F5- F11调试代码,监视窗口,调用堆栈和主代码时的快捷方式-无需键入任何GDB命令即可看到所有这些内容。 因此,这是一个问题: 您是否也使用Vim进行调试?还是为此目的而切换到某些IDE?哪一个? 对于那些使用Vim调试代码的用户:是否有用于在编辑器中设置断点的插件,突出显示我们当前正在调试的行,在进入,进入,退出时自动导航? 请不要告诉我您将GDB用作命令行,仅看到已调试的一行,等等。
152 c++  debugging  vim  gdb 

30
需要可预测的随机发生器
我是一名网络游戏开发商,但我遇到了随机数问题。假设一位玩家有20%的机会用剑获得暴击。这意味着5个匹配中有1个至关重要。问题是我在现实生活中的结果非常糟糕-有时玩家在5次点击中获得3分,有时15次点击中没有得分。战斗时间很短(3-10次击中),因此获得良好的随机分布非常重要。 目前,我使用PHP mt_rand(),但是我们只是将代码移至C ++,所以我想在游戏的新引擎中解决此问题。 我不知道解决方案是某种统一的随机生成器,还是想起以前的随机状态来强制正确分配。
151 c++  algorithm  random 

11
Java的最终版本与C ++的const
该Java进行C ++程序员教程说,(大亮点是我自己的): 关键字final 大致 等同于C ++中的const 在这种情况下,“大致”是什么意思?他们不是完全一样吗? 有什么区别(如果有)?
151 java  c++  const  final 

12
一个免费的工具,可以根据一组编码标准检查C / C ++源代码吗?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 在Java中找到这样一种工具(Checkstyle,JCSC)看起来很容易,但是我似乎找不到C / C ++的工具。我不是在寻找像皮棉一样的静态代码分析器,我只想检查诸如变量命名,大写,间距,标识,括号位置等编码标准。
151 c++  c  coding-style 

5
相当于Java的toString的C ++?
我想控制写入流的内容,即cout针对自定义类的对象。在C ++中有可能吗?在Java中,您可以toString()出于类似目的重写该方法。
151 c++ 

2
decltype(auto)有什么用?
Наэтотвопросестьответына 堆栈溢出нарусском:Конструкцияdecltype(自动) 在c ++ 14中,decltype(auto)引入了惯用语。 通常,它的用途是允许auto声明使用decltype给定表达式上的规则。 在搜索“良好”使用该用法的示例时,我只能想到以下内容(由Scott Meyers撰写),即函数的返回类型推导: template<typename ContainerType, typename IndexType> // C++14 decltype(auto) grab(ContainerType&& container, IndexType&& index) { authenticateUser(); return std::forward<ContainerType>(container)[std::forward<IndexType>(index)]; } 还有其他使用此新语言功能的示例吗?

5
分配向量后,它们会使用堆还是堆栈上的内存?
以下所有陈述是否正确? vector<Type> vect; //allocates vect on stack and each of the Type (using std::allocator) also will be on the stack vector<Type> *vect = new vector<Type>; //allocates vect on heap and each of the Type will be allocated on stack vector<Type*> vect; //vect will be on stack and Type* will be …
151 c++  stl  vector  stack  heap 

4
在CMake中,如何测试编译器是否为Clang?
我们有一组跨平台的CMake构建脚本,并且支持使用Visual C ++和GCC进行构建。 我们正在尝试Clang,但我不知道如何使用CMake脚本测试编译器是否为Clang。 我应该测试什么以查看编译器是否为Clang?我们目前正在使用,MSVC并CMAKE_COMPILER_IS_GNU<LANG>分别测试Visual C ++和GCC。
151 c++  c  cmake  clang 


4
模板默认参数
如果允许我执行以下操作: template <typename T = int> class Foo{ }; 为什么不允许我主要执行以下操作? Foo me; 但我必须指定以下内容: Foo<int> me; C ++ 11引入了默认模板参数,现在我无法完全理解它们了。
151 c++  templates 

4
在vector :: resize()和vector :: reserve()之间选择
我正在为我的vector成员变量预分配一些内存。下面的代码是最小的一部分 class A { vector<string> t_Names; public: A () : t_Names(1000) {} }; 现在,在某个时间点,如果t_Names.size()等于1000。我打算将尺寸增加100。然后,如果达到1100,则再次增加100,依此类推。 我的问题是,在vector::resize()和之间选择什么vector::reserve()。在这种情况下还有更好的选择吗? 编辑:我有一些精确的估计t_Names。我估计大约700在800。但是,在某些(很少)情况下,它的增长可能超过1000。
151 c++  vector 

5
在一个类中声明一个枚举
在以下代码段中,Color在Car类内声明了枚举,以限制枚举的范围,并尝试不“污染”全局名称空间。 class Car { public: enum Color { RED, BLUE, WHITE }; void SetColor( Car::Color color ) { _color = color; } Car::Color GetColor() const { return _color; } private: Car::Color _color; }; (1)这是限制Color枚举范围的好方法吗?或者,我应该在Car类之外声明它,但可能在其自己的名称空间或结构中声明它?我今天刚看过这篇文章,该文章提倡后者,并讨论了有关枚举的一些不错的观点:http : //gamesfromwithin.com/stupid-c-tr​​icks-2-better-enums。 (2)在此示例中,当在类中工作时,最好将枚举编码为Car::Color,还是就Color足够了?(我假设前者比较好,以防万一Color在全局名称空间中声明了另一个枚举。至少,这样,我们明确了我们要引用的枚举。)
150 c++  class  enums  namespaces  scope 

5
g ++ -Wreorder有什么意义?
g ++ -Wall选项包括-Wreorder。下面介绍此选项的作用。对我来说,为什么有人会关心(尤其是默认在-Wall中将其打开)并不明显。 -Wreorder(仅C ++) 当代码中给定的成员初始化程序的顺序不正确时发出警告 匹配必须执行的顺序。例如: 结构A { 我 int j; A():j(0),i(1){} }; 编译器将重新排列i和j的成员初始化器。 匹配成员的声明顺序,对此发出警告 影响。该警告由-Wall启用。

29
为什么在C ++类中的成员变量上使用前缀
许多C ++代码使用语法约定来标记成员变量。常见的例子包括 公共成员的m_ memberName(完全使用公共成员) _ 私人成员或所有成员的memberName 其他人试图在使用成员变量时强制使用this-> 成员。 以我的经验,大多数较大的代码库都无法始终如一地应用这些规则。 在其他语言中,这些约定的使用范围远远不够。我只偶尔在Java或C#代码中看到它。我想我从未在Ruby或Python代码中看到过它。因此,似乎有一种趋势是使用更现代的语言,不对成员变量使用特殊标记。 这个约定是今天在C ++中还是有用的还是仅仅是过时的。特别是因为跨库使用不一致。其他语言没有表明没有成员前缀也可以做到吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.