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

===============================================
未完待续,转载时请表明出处:[url]http://www.cofftech.com/thread-1392-1-1.html[/url]
欢迎大家跟帖讨论哈~~~~~
===============================================
以下两条语句同样地不能将变量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; } 被称为带参数的构造函数。
构造函数的主要功能是将对象初始化,具体为:
将初始值赋予位于内存栈区空间内的对象的非静态数据成员(不包括该类的静态数据成员)。
构造函数是在建立对象(实例化)时自动被调用的。一般将初始化语句编写在构造函数内,从而在建立对象时达到自动初始化的目的。而且建立不同对象时,能够对不同对象的数据成员赋予不同初始值。
构造函数的特点:
(一)构造函数是类的特殊成员函数,它的名字与类名相同,它不能具有返回值。(一般提到成员函数时,不包括构造函数)
(二)当构造函数的函数定义(即包括函数体的部分)放在类体之外时,其函数原型[说明]应放在类体内。
(三)构造函数可以没有、也可以具有多个参数。
(四)构造函数可以重载。
(五)构造函数不能继承。
(六)当类中没有数据,或当数据不须初始化时,不必定义任何构造函数。这种情况下,建立对象时就不调用任何构造函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值