六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 29|回复: 0

《C++学习笔记》构造函数及特点

[复制链接]

升级  72%

48

主题

48

主题

48

主题

秀才

Rank: 2

积分
158
 楼主| 发表于 2013-1-26 14:03:02 | 显示全部楼层 |阅读模式
===============================================
未完待续,转载时请表明出处:http://www.cofftech.com/thread-1392-1-1.html
欢迎大家跟帖讨论哈~~~~~
===============================================
以下两条语句同样地不能将变量j或对象obj初始化,即:
int j;
integ obj;
对于单个变量,可如下进行初始化:
int j(10);
对于类的对象,是否也可用此方式初始化?例如integ obj(15);可以。但须依靠构造函数。
C++系统提供了构造函数的功能。在用户定义构造函数之后,也和单个变量同样,每当建立对象时,系统即自动地调用该对象的构造函数,完成该对象的初始化操作。见下例:
[例1]使用构造函数将对象初始化
// initialize_2.cpp
#include <iostream.h>
class point
{
       int x, y;
public:
       point( int vx, int vy) { x = vx; y = vy; }       //构造函数
       void print( ) { cout<<x<<' '<<y<<endl; }
};

void main()
{
       point  p1 (10, 10);
       p1.print( );
}

/* Results:
   10 10                    */
其中      point( int vx, int vy) { x = vx; y = vy; }       被称为带参数的构造函数。
构造函数的主要功能是将对象初始化,具体为:
将初始值赋予位于内存栈区空间内的对象的非静态数据成员(不包括该类的静态数据成员)。
构造函数是在建立对象(实例化)时自动被调用的。一般将初始化语句编写在构造函数内,从而在建立对象时达到自动初始化的目的。而且建立不同对象时,能够对不同对象的数据成员赋予不同初始值。
构造函数的特点:
(一)构造函数是类的特殊成员函数,它的名字与类名相同,它不能具有返回值。(一般提到成员函数时,不包括构造函数)
(二)当构造函数的函数定义(即包括函数体的部分)放在类体之外时,其函数原型[说明]应放在类体内。
(三)构造函数可以没有、也可以具有多个参数。
(四)构造函数可以重载。
(五)构造函数不能继承。
(六)当类中没有数据,或当数据不须初始化时,不必定义任何构造函数。这种情况下,建立对象时就不调用任何构造函数。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表