关于C++类的问题

写C++作业时遇到的问题,求大神解答!!
在完成3.12写Account类时遇到的问题。。

你在构造account1时参数不能写类型...

你是在调用函数(构造函数也是函数),不是在声明函数
例如
Account account1(1, 2, 3)
或者
Account account1(a, 2, c + 2)追问

怎么报错又增加了啊……

追答

...
我只是说传值进去,你a,b,c三个变量都没定义怎么可能可以用啊...
我只是在举例...
你把它当成一般的函数就行了...
不要再在函数里面声明一遍.

Account account1(1, 2, 3);
account1.credit(234);
你又不是在定义函数你写成那样干什么...
你会用函数吧???

追问

才学 不太会用……

那a b c在外部进行一下定义就能用了?

追答

对函数来说,你传进去的是字面量还是变量是没有关系的...

比如你需要通过a,b,c来构造这个account,那你就用.

如果你需要用具体的数字来构造,你就直接写.

不要局限在a,b,c上啊

比如abc,def,sddsd只要你定义的这些变量,你当然就可以传进去.

你函数里写的变量名和外面传给它的"完全"没有关系.

追问

为啥没有关系呢?外面我也同样用a b c了啊…

追答

变量只是一个名字啊

追问

在Account.cpp里我也同样用了a b c三个变量啊

也就是说 我在Account.cpp里的变量和main.cpp里的设置的变量不一样?

就算名字相同

那我把main里面改成这样呢?

追答

抱歉,刚才在测试...

不是一样的
在不同的大括号间变量好不相干(一般来说)...
你的a,b,c没有初始化
你调用的函数为什么和构造函数一样写啊???为什么要写成定义的样子啊???
比如

int main() {
int x, y, z;
cin >> x >> y >> z;
Account acc(x, y, z);
acc.credit(123);
cout << acc.getBalance() << endl;
}

追问

实参?

追答

对啊
讲真你会C++的语法吗?我建议你先忽略类,先学习函数,否则你连函数该怎么调用都不知道...

追问

emmmm

控制语句是在类后面讲的

追答

调用函数时的格式就像你调用标准库的函数一样的
像printf啊,cos啊之类的
你不需要抄一遍定义啊

建议去先看看书,像C++ Primer Plus之类的书

追问

我哪步抄了定义……(意识模糊)

函数不应该是先定义再用吗?

account1是类的对象

后加加点再加函数是调用对象里的函数……

书上是这么写的

追答

可是你在头文件中已经定义了
你使用是使用,定义是定义
你都定义的还多事干什么...

追问

.h里写的是我要调用的函数以及数据成员

Account.cpp里写我是具体如何实现的

main主函数再整合起来

那问题是出在了main函数?

应该直接调用函数 而不是再定义一遍?

追答

对呀,这时编译器就已经知道函数长什么样了啊
在函数里面"不要"定义/声明函数
C里是可以,但在C++里没什么意义,一般都是放在全局
而类函数不能直接定义,只能在class{}里写完,你最多可以在其他地方实现它,但定义不行(或者可以?反正没人这么用)

举个例子
#include
using namespace std;

class Test {
int value;
public:
Test(int v) {
value = v;
}
void Show(int p) const {
cout > k;
Test tst(k);
tst.Show(123);
}

// 输出k+123

追问

那我应该怎么改呢

追答

比如你要调用credit
那你就直接调用
比如account1.credit(123)

追问

可是我在credit里用到了b了,(123)该不该改成(b)?

追答

不用
你在定义是你的形参不就是b吗?
你传什么和真正的名字半毛钱关系都没有

追问

那为什么一定要加123数字呢?这123去哪了呢

还是说123代表一个整形?

追答

赋值给那个变量b了啊
比如我们可以这样
void test(int);

int main() {
test(123);

}

void test(int p) {
cout << p;
}

追问

怎么发送失败

emmm

可以了

我私信你了

温馨提示:内容为网友见解,仅供参考
无其他回答

C++题目求助,多选题,关于类的?
C选项Lei的复制构造函数的参数可以是Lei对象的const引用,也可以不是const引用.D选项复制构造函数可以在对象创建完毕后,只能在作为函数的形参,返回的对象和赋值给同类对象时调用复制构造函数,不是任意调用.所以关于复制构造函数的说法正确的是A 下面是关于复制构造函数的例子 ...

C++类 的问题
1.类就是对一个事物抽象出来的结果。封装,指两方面含义,一是将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰。二是将对象中某些部分对外隐蔽,即隐蔽其内部细节,只留下少量接口,以便于外界联系,接受外界信息。2.类是面向对象程序设计的核心,它实际是...

C++类的大小详解
在C++编程语言中,类的大小是由其成员变量所占用的内存空间总和决定的。这种大小可能会因为编译器的优化和对齐规则而有所变化。以下是关于类大小计算的详细分析:1. 成员变量的大小 每个成员变量的大小是由其数据类型决定的。不同数据类型所占的字节数不同。例如,在以下示例中:2. 对齐规则 为了提高内...

c++中类的定义问题
在函数中定义的变量,如果不是用new创建的,那么就是建立在栈空间上的。栈上的变量在函数执行完之后,系统会按照“先进后出”的原则依次删除。如果变量是类的对象,系统会调用类的析构方法。在块中的变量会首先被删除,嵌套的块变量自里而外删除。在本程序中,解释如下:b、c、d是依次定义的,按顺...

关于C++对象访问类成员的问题
类其实是个模型。而对象就是找个这个模型制作的实体。比如,类是造车的图纸,对象就是找个图纸造出的汽车。类的成员是分级别的:protect,public,private。在类内部定义的函数可以访问任何一个变量,或者调用任何的类内部的函数,但是,如果被定义成private的话,对象是不能调用的,也就是对象只能调用...

关于C++的六个问题,,想请高手帮我看看 加分..
你的第一个问题没看懂。如果想要了解数组,那么应该去看内存。你给个你看不懂的例子,我帮你看看吧。2.C++最难的,最核心的,最重要的是继承和虚函数。而C++比C好用的地方是STL。3.你先了解下new吧,其他的几个你在使用过程中会慢慢体会出来的。4.区分还是要看内存... ...5.隐式类型转换,...

C++关于类的编程题目
他们与计算机类的关系是has-a的关系,也就是三者加上一些相关功能组成计算机类。对于这种类型,一般是把组成直接写入类里,例如:class computer { private:\/\/电脑的内部结构对用户透明,所以是私有的 host h;\/\/电脑主机 keyboard kb;\/\/键盘 monito m;\/\/显示器 void getinformation();\/\/进入输入准备,...

关于c++的问题,判断题
问题描述:(1)使用派生类的主要原因是加强类的封装性;(2)在语句:class derived: base中,类derived是从类base私有派生的;(3)继承方式的不同决定了派生类定义中是否能直接访问基类的私有成员;(4)基类构造函数的参数通常来源于派生类构造函数的参数总表,也可以用常数值;(5)当基类含有带参数...

C++ 类的初始化
当C++类被实例化时,初始化过程启动,首先通过调用构造函数来初始化对象。构造函数在对象生命周期的开始执行,而当对象不再使用时,析构函数则负责释放资源。在构造函数开始之前,会先对类的成员变量进行初始化。成员变量的声明顺序决定了它们的初始化顺序,无论它们在初始化列表中的位置如何。这种初始化...

c++的类和对象
对象就是类类型的一个变量。可以说类是对象的模板,是用来定义对象的一种抽象类型。类是抽象的,不占用内存,而对象是具体的,占用存储空间。 类是用户自己指定的类型。如果程序中要用到类类型,必须自己根据需要进行声明,或者使用别人已设计好的类。C++标准本身并不提供现成的类的名称、结构和内容。在...

相似回答