编译C++遇到问题,

hello_kitty8888 2011-12-26 09:40:28
我写了一个C++的代码,如下:
#include <iostream>
class Sales_item {
public:
Sales_item():units_sold(0),revenue(0.0) { }
public:

unsigned units_sold;
double revenue;
};
int main()
{

Sales_item::Sales_item():units_sold(0),revenue(0.0) { }
return 0;
}


请问一下这个程序为什么编译不过呢?
...全文
266 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_kitty8888 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 a443475601 的回复:]

LZ的意思是想通过初始化列表实现构造函数,但是想在类内声明,在类外实现是吧??
其实和普通的成员函数没什么区别,声明该怎么声明还是怎么声明,
实现的时候在用初始化的那种方式就可以了!
[/Quote]
这个回答很好,我明白了。
laomashitu 2011-12-26
  • 打赏
  • 举报
回复
楼主还是找本书,好好看看吧
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 a443475601 的回复:]

#include <iostream>
class Sales_item
{
public:
Sales_item();
public:

unsigned units_sold;
d……
[/Quote]
是这个意思,但是你这个编译会出错的,我不知道具体的原因,一些传数传递等,你这个编译会出错的,其实刚开始我跟你想的差不多,也是想获取这方面的原因,但大家没有给出具体的方案,如给参数如何传值,我也期待啊。
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 a443475601 的回复:]

引用 14 楼 jgyh1987 的回复:

unsigned 这个是啥 编译器居然没显示蓝色你都当类型用?

Sales_item::Sales_item():units_sold(0),revenue(0.0) { }

这个又是啥~~
建议从头开始学过吧


unsigned不显示蓝色不代表不对,编译器问题。
Sales_item::Sales_item……
[/Quote]
mskmc_mc 2011-12-26
  • 打赏
  • 举报
回复
Sales_item::Sales_item():units_sold(0),revenue(0.0) { }
不好
苹果皮 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jgyh1987 的回复:]

unsigned 这个是啥 编译器居然没显示蓝色你都当类型用?

Sales_item::Sales_item():units_sold(0),revenue(0.0) { }

这个又是啥~~
建议从头开始学过吧
[/Quote]

unsigned不显示蓝色不代表不对,编译器问题。
Sales_item::Sales_item():units_sold(0),revenue(0.0) { } 初始化列表,没用过???
孤舟 2011-12-26
  • 打赏
  • 举报
回复
unsigned 这个是啥 编译器居然没显示蓝色你都当类型用?

Sales_item::Sales_item():units_sold(0),revenue(0.0) { }

这个又是啥~~
建议从头开始学过吧
苹果皮 2011-12-26
  • 打赏
  • 举报
回复
Sales_item::Sales_item():units_sold(0),revenue(0.0)
忘记加作用域了!
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
大家要好的经验可以再指导一下,供大家学习一下,然后我就结帖。
苹果皮 2011-12-26
  • 打赏
  • 举报
回复
#include <iostream>
class Sales_item
{
public:
Sales_item();
public:

unsigned units_sold;
double revenue;
};

Sales_item Sales_item():units_sold(0),revenue(0.0)
{
//
}
int main()
{

Sales_item test;
return 0;
}


LZ是这个意思吧??
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
楼上说的很好,我知道是怎么会事,下面我兴趣个例子吧。
#include <iostream>
class Sales_item {
public:
Sales_item(int a):units_sold(0),revenue(0.0) { };
public:

unsigned units_sold;
double revenue;
};



int main()
{
Sales_item aa(3);
return 0;
}
东风无眠 2011-12-26
  • 打赏
  • 举报
回复
类对象的方法不要放到main方法里面定义!!拿出来
DukeSoft 2011-12-26
  • 打赏
  • 举报
回复
有点乱。
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 flydreamgg 的回复:]

直接 Sales_item A;
[/Quote]

那是实例化一个类,我说的是--构造函数初始化列表.请教大侠。
昨夜无风 2011-12-26
  • 打赏
  • 举报
回复
直接 Sales_item A;
苹果皮 2011-12-26
  • 打赏
  • 举报
回复
LZ的意思是想通过初始化列表实现构造函数,但是想在类内声明,在类外实现是吧??
其实和普通的成员函数没什么区别,声明该怎么声明还是怎么声明,
实现的时候在用初始化的那种方式就可以了!
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mougaidong 的回复:]

实例化对象,不能用这样的语法:C/C++ code
Sales_item::Sales_item():units_sold(0),revenue(0.0) { }


应该 C/C++ code
Sales_item instance;
[/Quote]
你这个是什么意思?
我说的是实例化参数列表,并不是你说的这个实例化一个类,你说的这个我懂得。
hello_kitty8888 2011-12-26
  • 打赏
  • 举报
回复
对啊,完全没基础,也不愿意从头看起,没接触过c++,伤不起。
苹果皮 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhongxiaowenhuman 的回复:]

引用 11 楼 a443475601 的回复:

#include <iostream>
class Sales_item
{
public:
Sales_item();
public:

unsigned units_sold;
d……

是这个意思,但是你这个编译会出错的,我不知道具体的原因,一些传数传递等,你这……
[/Quote]
晕 我后面都说了
我忘加作用域了,你看看你加了没?

#include <iostream>
class Sales_item
{
public:
Sales_item();
public:

unsigned units_sold;
double revenue;
};

Sales_item::Sales_item():units_sold(0),revenue(0.0)
{
//
}
int main()
{
Sales_item test;
return 0;
}
qwer_boo 2011-12-26
  • 打赏
  • 举报
回复
基础没打好啊楼主
加载更多回复(13)

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧