Questions tagged «c++»

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

16
C ++重新定义头文件(winsock2.h)
如何防止两次包含头文件?问题是我包括在MyClass.h中,然后在许多文件中包含MyClass.h,因此它包含多次,并且发生重定义错误。怎么预防? 我使用#pragma一次而不是使用包括卫兵,我想那很好。 MyClass.h: // MyClass.h #pragma once #include <winsock2.h> class MyClass { // methods public: MyClass(unsigned short port); virtual ~MyClass(void); }; 编辑:我得到的错误很少 c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(460) : see previous definition of 'AF_IPX' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(124) : warning C4005: 'AF_MAX' : macro …
143 c++  header  redefinition 


4
TensorFlow,为什么选择python语言?
我最近开始研究深度学习和其他ML技术,并开始寻找简化构建网络并对其进行培训的框架,然后我发现TensorFlow在该领域经验不足,对我来说,速度似乎是如果与深度学习一起工作,那么使大型机器学习系统变得更大的重要因素,那么为什么Google选择python来制造TensorFlow?用一种可以编译且无法解释的语言来编写代码会更好吗? 使用Python而不是像C ++这样的语言进行机器学习有什么优势?


14
C ++ 11中的递归Lambda函数
我是C ++ 11的新手。我正在编写以下递归lambda函数,但无法编译。 sum.cpp #include <iostream> #include <functional> auto term = [](int a)->int { return a*a; }; auto next = [](int a)->int { return ++a; }; auto sum = [term,next,&sum](int a, int b)mutable ->int { if(a>b) return 0; else return term(a) + sum(next(a),b); }; int main(){ std::cout<<sum(1,10)<<std::endl; return 0; } …
143 c++  c++11  lambda 

2
-pthread标志在编译时的意义
在各种多线程C和C ++项目中,我已经看到该-pthread标志同时应用于编译和链接阶段,而其他人则根本不使用它,而只是-lpthread转到链接阶段。 有没有编译和链接-pthread标志的危险-即-pthread实际上是做什么的?我主要对Linux平台感兴趣。
143 c++  c  linux  pthreads 

9
有没有办法从持有类名的字符串中实例化对象?
我有一个文件:Base.h class Base; class DerivedA : public Base; class DerivedB : public Base; /*etc...*/ 和另一个文件:BaseFactory.h #include "Base.h" class BaseFactory { public: BaseFactory(const string &sClassName){msClassName = sClassName;}; Base * Create() { if(msClassName == "DerivedA") { return new DerivedA(); } else if(msClassName == "DerivedB") { return new DerivedB(); } else if(/*etc...*/) { …

13
错误LNK2019:函数___tmainCRTStartup中引用的未解析的外部符号_WinMain @ 16
当我运行下面的简单代码时,我有两个错误,如下所示: #include <iostream> #include <string> using namespace::std; template <class Type> class Stack { public: Stack (int max):stack(new Type[max]), top(-1), maxsize(max){} ~Stack (void) {delete []stack;} void Push (Type &val); void Pop (void) {if (top>=0) --top;} Type& Top (void) {return stack[top];} //friend ostream& operator<< (ostream&, Stack&); private: Type *stack; int top; const …


6
_DEBUG和NDEBUG
应该使用哪个预处理程序定义来指定代码的调试部分? 使用#ifdef _DEBUGor #ifndef NDEBUG或有更好的方法来做到这一点,例如#define MY_DEBUG? 我认为_DEBUG特定于Visual Studio,是NDEBUG标准吗?
142 c++  c  debugging 

6
为什么在许多C ++标准库代码中将不等式测试为(!(a == b))?
这是C ++标准库remove代码中的代码。为什么用不平等if (!(*first == val))来代替if (*first != val)? template <class ForwardIterator, class T> ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val) { ForwardIterator result = first; while (first!=last) { if (!(*first == val)) { *result = *first; ++result; } ++first; } return result; }
142 c++ 

4
在C ++ 11中,按值传递是否是合理的默认值?
在传统的C ++中,将值传递给函数和方法对于大型对象而言比较慢,并且通常对此不屑一顾。取而代之的是,C ++程序员倾向于传递引用,这虽然更快,但是却引入了与所有权有关的各种复杂问题,尤其是与内存管理有关的问题(在对象是堆分配的情况下) 现在,在C ++ 11中,我们有了Rvalue引用和move构造函数,这意味着可以实现大对象(例如std::vector),而该对象很容易通过值传入和传出函数。 因此,这是否意味着默认值应为诸如std::vector和类型的实例按值传递std::string?定制对象呢?最新的最佳做法是什么?
142 c++  coding-style  c++11 

4
在C ++中的头文件中声明的情况下在源文件中定义静态方法
我在使用C ++中的静态方法时遇到一些麻烦 示例.h: class IC_Utility { public: IC_Utility(); ~IC_Utility(); std::string CP_PStringToString( const unsigned char *outString ); void CP_StringToPString( std::string& inString, unsigned char *outString, short inMaxLength ); static void CP_StringToPString( std::string& inString, unsigned char *outString); void CP_StringToPString( FxString& inString, FxUChar *outString); }; 示例.cpp: static void IC_Utility::CP_StringToPString(std::string& inString, unsigned char *outString) { …

5
Boost Statechart与元状态机
显然boost包含两个独立的状态机库:Statechart和Meta State Machine(MSM)。标语给出了非常相似的描述: Boost.Statechart-可以用易于阅读和维护的C ++代码实现任意复杂的有限状态机。 元状态机-用于表达性UML2有限状态机的非常高性能的库。 您知道两者之间的主要区别是什么,以及在两者之间进行选择时需要考虑的因素?

7
在C ++中调用构造函数而无需新建
我经常看到人们使用C ++创建对象 Thing myThing("asdf"); 代替这个: Thing myThing = Thing("asdf"); 至少在不涉及模板的情况下,这似乎可行(使用gcc)。我现在的问题是,第一行是否正确?如果可以,我应该使用它吗?
142 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.