草庐IT

dynamic-programming

全部标签

c++ - Eclipse CDT : running C++ program not showing anything in the console! 为什么?

我正在使用Cygwin在Windows64位上运行带有CDT的最新版本的Eclipse,用于编译代码。我的问题是,当我在eclipse中运行任何c++软件时,控制台中没有输出。我试过这个:EclipseCDTdebuggerdoesnotshowconsole还有这个:EclipseCDTDebugconsolenotdisplayingprogramoutput但它不起作用。 最佳答案 作为"NoConsoleOutput(MinGW,CDT)"的伙计们指出,这可能(或至少有时)是因为Eclipse在启动可执行文件时没有将PATH

c++ - 符合标准的编译器可以拒绝包含来自非多态类型的 dynamic_cast downcast 的代码吗?

这个问题的灵感来自评论here.考虑以下代码片段:structX{};//novirtualmembersstructY:X{};//mayormaynothavevirtualmembers,doesn'tmatterY*func(X*x){returndynamic_cast(x);}一些人建议他们的编译器会拒绝func的正文.但是,在我看来,这是否由标准定义取决于x的运行时值。.来自第5.2.7节([expr.dynamic.cast]):Theresultoftheexpressiondynamic_cast(v)istheresultofconvertingtheexpres

c++ - 你能合法地将dynamic_cast转换为多态类的非多态基类吗

在thisanswer,出现了以下场景:#includestructA{};structB{virtual~B(){}};structAA{};templatestructC:A,T{};intmain(){B*b=newC;AA*aa=newC;assert(dynamic_cast(b));assert(dynamic_cast(aa));//thislinedoesn'tcompile,asexpected}在g++4.8.4(Ubuntu)上,它编译并且断言通过。我的问题是,这真的合法吗?我觉得您根本不应该将dynamic_cast转换为非多态类,但我坦率地承认,我不是这里发生

c++ - 错误 : 'cout' : undeclared identifier; though I've included iostream header file in program

我正在尝试编译下面的简单程序。但是,它没有编译并给出错误:errorC2065:'cout':undeclaredidentifier我想问你,为什么我已经在其中包含了iostream头文件,这个程序却不能运行?#includevoidfunction(int){cout提前致谢。 最佳答案 cout流在std命名空间中定义。所以命名它你写:std::cout如果你想把它缩短为cout那么你可以写usingnamespacestd;或usingstd::cout;在写cout之前。任何好的文档来源都会告诉您哪个命名空间包含一个对象。

java - 为工作使用正确的工具 : embedded programming

我对非常​​适合嵌入式编程的编程语言感兴趣。特别是:是否可以用C++编写嵌入式系统?还是使用纯C更好?还是只有在排除语言的某些特性(例如RTTI、异常和模板)时,C++才可以?这个领域的Java怎么样?谢谢。 最佳答案 IsitpossibletoprogramembeddedsystemsinC++?是的,当然,即使在8位系统上也是如此。C++的运行时初始化要求与C稍有不同,即在调用main()之前,必须调用任何静态对象的构造函数。开销(不包括您控制的构造函数本身)很小,但您必须小心,因为未定义构造顺序。使用C++,您只需为使用的

c++ - "Elements of Programming"现实世界的例子?

我很想了解ElementsofProgramming书中描述的Stepanov的编程方法。.这里有没有人有这些方法的经验,或者可以指出一些讨论这个主题的在线资源?我在APossiblefutureofsoftwaredevelopment上看到了Adob​​e的Google技术讲座. 最佳答案 我是这本书的校对员,我对亚历克斯的反馈极大地影响了演讲的风格。我很高兴称自己为他的门徒之一。我觉得这些Material很吸引人,它彻底改变了我编写代码的方式,甚至是Java代码。尽管我提供的措辞含糊不清,但Alex的一些“方法”是激进的:编程

c++ - 如何使用 boost::program_options 接受可选标志?

我需要实现一个可选标志,例如-f/--flag。由于这是一个标志,因此没有关联的值。在我的代码中,我只需要知道是否设置了标志。使用boost::program_options的正确方法是什么? 最佳答案 一个方便的方法是使用bool_switch功能:boolflag=false;namespacepo=boost::program_options;po::options_descriptiondesc("options");desc.add_options()("flag,f",po::bool_switch(&flag),"de

c++ - 避免 dynamic_cast 的模式

我有一个类:classA{public:virtualvoidfunc(){…}virtualvoidfunc2(){…}};还有一些派生类,比如B、C、D...在95%的情况下,我想遍历所有对象并调用func或func2(),因此我将它们放在一个vector,例如:std::vector>myVec;…for(autoit=myVec.begin();it!=myVec.end();++it)(*it).func();但是,在其余5%的情况下,我想根据它们的子类对类做一些不同的事情。我的意思是完全不同的,比如调用带有其他参数的函数,或者根本不调用某些子类的函数。我已经想到了一些解决这

c++ - dynamic_cast 的正确用例是什么?

我多次被告知(并且在实践中看到我自己)使用dynamic_cast通常意味着糟糕的设计,因为它可以而且应该用虚函数代替。例如,考虑以下代码:classBase{...};classDerived:publicBase{...};...Base*createSomeObject();//MightcreateaDerivedobject...Base*obj=createSomeObject();if(dynamic_cast(obj)){//dostuffinoneway}else{//dostuffinsomeotherway}可以很容易地看出,我们可以将一个虚函数doStuff()

c++ - shared_dynamic_cast 和 dynamic_pointer_cast 的区别

谁能给我解释一下:shared_dynamic_cast和dynamic_pointer_cast来自Boost库?在我看来它们可能是等价的。 最佳答案 给定一个shared_ptr,这两个函数确实是等价的。区别在于shared_dynamic_cast仅适用于shared_ptr的,而dynamic_pointer_cast适用于任何类型的指针(通过重载)。这使您可以对任何指针concept执行动态转换,而不管该指针实际上是如何构成的:#include#includestructfoo{};structbar:foo{voidf(