下面是一个带有变量myInteger的类的简短示例,该类没有在已定义的单个构造函数中初始化。
// A.h
class A
{
public:
A(const std::string& str);
private:
int myInteger;
};
// A.cpp
A::A(const string& str)
{
// I do something with str
}
定义了单个构造函数,这意味着编译器不会生成没有参数的默认构造函数。
问:如果将头文件更改为将变量myInteger设置为值,编译器
所以今天我为一个简单的坐标系写了一些C++,我想我想要一个构造函数接受2个值,这样我就可以写“坐标c=新坐标(1,2);”
struct Coordinates {
int x;
int y;
Coordinates(int a, int b) {
x = a;
y = b;
}
};
在用Cygwin编译时,我得到:
$ g++ -o adventure adventure.cpp adventure.cpp:36: error:没有调用“协调员::坐标()”的匹配函数adventure.cpp:22:注意:候选人是:坐标::坐标(cons
当我们从下面的类初始化对象时,哪些类将使用默认构造函数?
class X {}
class Y {
Y () {}
}
class Z {
Z(int i ) {}
}
类Z将不使用默认构造函数。类X将使用默认构造函数。
那Y呢?用户定义的空构造函数是否称为默认构造函数?就像他们在维基百科(Java部分) 上说的那样
或者,如果我们在初始化对象时可以说是默认构造函数,那么类中不应该定义构造函数吗?
我有以下课程:
class ArithmeticExpression
{
public:
ArithmeticExpression(std::string expr);
}
class Command
{
public:
Command(){};
//this is a virtual class
}
class CommandAssign : public Command
{
private:
ArithmeticExpression expr;
public:
CommandAssign();
CommandAssign(Arithm
这快把我逼疯了。我收到一个“没有匹配的函数调用到'WordCloud::WordCloud()'”的错误。看起来调用了一个默认的构造函数,但是因为我没有定义一个,所以抛出了错误。
构造函数是:
WordCloud( map<string, int> *source );
在主cpp文件中,错误发生在指定的行上。
class FontTestingApp : public AppBasic
{ // <-- error was appearing on this line
public
所以我在youtube上看了一段视频,youtuber说:“当你创建‘这个’对象时,你需要将它设置为这个对象的一个新的‘类型’。”
类被称为objectIntro,构造函数是:
public objectIntro(){
//Object Constructor (Method)
}
所以我的问题是..。
我试着创建一个物体,它基本上告诉我汽车里汽油的水平.
public class car {
double petrolLevel;
double tankSize;
public void refillPetrol(double I){
if(I
当我遇到这种情况时,我正在练习圆顶Java原则。我创建POJO,当尝试用它创建对象时,如果没有定义空构造函数,它就不会编译。
我觉得这很奇怪,因为我经常这样做,JVM为我提供了一个默认的JVM。它在Java 7中是新的吗?我是不是遗漏了什么?
这是我做的示例代码
public class Dog {
String name;
String race;
int age;
/*
public Dog() {
If this isn't included, it doesn't compile if I try to
create no-args objects.
我是C++的新手,对这一点我不太确定。看看下面的例子,它总结了我目前的问题。
class Foo
{
//stuff
};
class Bar
{
Foo foo;
};
所以Bar约束了一个完整的Foo对象,而不仅仅是一个引用或指针。此对象是由其默认构造函数初始化的吗?我需要显式地调用它的构造函数吗?如果需要,如何调用以及在哪里调用?
谢谢。