9得票3回答
转换为void类型时出现异常编译器错误?

我正在为我要教授的课程编写一个基于C++的作业。我有一个函数,我希望学生在程序的各个阶段调用它,以便在评分时我们可以拦截这些调用,以确保他们在正确的时间做正确的事情。我不想让该代码在提供的起始文件中执行任何操作,因此我只给该函数一个主体,其中包含一系列语句,将所有参数转换为void,以抑制编译...

11得票4回答
为什么使用()声明对象时构造函数没有被调用?

可能重复: 为什么使用空括号调用没有参数的构造函数是错误的? $ cat cons.cpp #include <iostream> class Matrix { private: int m_count; public: Matrix() { ...

24得票7回答
使用()和不使用()创建对象的区别

我遇到了问题error: request for member ‘show’ in ‘myWindow’, which is of non-class type ‘MainGUIWindow()’ 尝试编译简单的Qt应用程序时:#include <QApplication> #in...

43得票6回答
什么是“最具棘手性解析(Most Vexing Parse)”的目的?

我在维基百科上找到了这个: A a( A() ); 这可能是以下两种情况之一: 类 [A] 的变量定义,它接受一个类 [A] 的匿名实例;或者 函数声明,返回类型为 [A] 的对象,并且接受一个单一(未命名)参数,该参数是返回类型为 [A] 的函数(不接受任何输入)。...

7得票2回答
构造函数调用机制

struct my { my(){ std::cout<<"Default";} my(const my& m){ std::cout<<"Copy";} ~my(){ std::cout<<"Destructor";} }; i...

7得票2回答
Test t; 和 Test t(); 有什么区别?如果 Test 是一个类。

可能重复: 为什么没有调用构造函数? 我正在使用Visual Studio 2012,假设Test是一个类。 class Test { }; 当我创建一个Test实例时,以下两种方式有什么区别? 方式1 Test t; 方法二 Test t(); 在下面的代码中,我...

11得票1回答
最令人困扰的解析问题阻止在类中初始化std::vector<int>。

C++11允许在类中进行初始化: struct Foo{ std::vector&lt;std::string&gt; v{3}; // vector of 3 empty strings }; 如果我们想要在类中初始化一个整数向量,我们会得到另外一些东西: struct Fo...

168得票5回答
我的数值初始化尝试被解释为函数声明,为什么 A a(()); 不能解决这个问题?

Stack Overflow教给我的许多东西中,有一件就是被称为“最令人困扰的解析”的概念。这个概念经典地通过一行代码来演示,例如: A a(B()); //declares a function 虽然对大多数人来说,这似乎是声明了一个类型为A的对象a,并将一个临时的B对象作为构造函数参...

81得票3回答
我不理解为什么这个可以编译通过

我肯定是遗漏了什么,但我不明白为什么这个代码可以通过编译(无论是使用g++还是clang++):struct A { }; struct B { }; int main() { A a(B); } 首先,B 是一种类型,而不是一个值。我该如何解释这段代码?

8得票3回答
如何检查一个值是否包含在向量中?C++

我有一个向量,想要对其执行包含函数。但是我收到了某种类型转换错误的提示,无法找到解决方案。我还想知道,我所做的是检查向量是否包含值的适当方式吗? 以下是代码: #include "stdafx.h" #include &lt;vector&gt; static void someFunc...