C++问题请教

[复制链接]
查看11 | 回复2 | 2010-11-19 14:31:40 | 显示全部楼层 |阅读模式
1#include
2#include
3using namespace std;
4class A
5{
6public:
7 A(int sma)
8 {
9
cout<<"A"<<""<<sma<<endl;
10 }
11 };
12 void fn(int n)
13
14 {
15 static Asm(n);
16 cout<<"fn"<<""<<n<<endl;
17 }
18 main( )
19 {
20fn(10);
21fn(20);
22system("pause");
23 }
本人自学C++,刚刚学到类定义方面内容,这是从网上下载的一个课件上的程序,(编译运行没错)我看了之后一头雾水具体问题如下:
第七行:A(int sma)
A是个函数名吗?如果是,怎么没有返回值类型?
第十五行:static Asm(n)
这行是不是定义一个静态对象?怎么会有sm(n),这是什么?
课件上解释如下,谁能把他解释的给我解释一下
输出结果为:
A10 //对象sm在构造时,由构造函数输出
fn10
fn20//对象sm 是静态对象,因此再次调用fn时sm已存在,不再初始化
按照他的说法,sm是个对象,那么后面为什么写成sm(n)
A的定义并没有指出它有私有或其他类型的数据成员啊!

回复

使用道具 举报

千问 | 2010-11-19 14:31:40 | 显示全部楼层
A(int sma)是类A的构造函数。在构造A的时候会被调用。他很特殊,是没有返回值类型的。与之对应的是析构函数,在销毁的时候调用。比如A的析构函数:~A();static Asm(n)A是类名,sm是变量名 sm(n)是用参数n构造sm(调用构造函数)
回复

使用道具 举报

千问 | 2010-11-19 14:31:40 | 显示全部楼层
A(int sma) 是构造函数static A说明sm是A的一个静态对象sm(n)是调用构造函数用的总而言之,把课件的类的构造函数翻出来,仔细读几遍吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行