===============================================
未完待续,转载时请表明出处:
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; } 被称为带参数的构造函数。
构造函数的主要功能是将对象初始化,具体为:
将初始值赋予位于内存栈区空间内的对象的非静态数据成员(不包括该类的静态数据成员)。
构造函数是在建立对象(实例化)时自动被调用的。一般将初始化语句编写在构造函数内,从而在建立对象时达到自动初始化的目的。而且建立不同对象时,能够对不同对象的数据成员赋予不同初始值。
构造函数的特点:
(一)构造函数是类的特殊成员函数,它的名字与类名相同,它不能具有返回值。(一般提到成员函数时,不包括构造函数)
(二)当构造函数的函数定义(即包括函数体的部分)放在类体之外时,其函数原型[说明]应放在类体内。
(三)构造函数可以没有、也可以具有多个参数。
(四)构造函数可以重载。
(五)构造函数不能继承。
(六)当类中没有数据,或当数据不须初始化时,不必定义任何构造函数。这种情况下,建立对象时就不调用任何构造函数。
分享到:
相关推荐
2. C++中的构造函数有几种类型:默认构造函数、拷贝构造函数、委托构造函数等。构造函数是在创建对象时自动调用的特殊成员函数,用于初始化对象的成员变量。 3. 结构体内存对齐是C++中为了提高内存存取效率而采取的...
【C++学习笔记概述】 C++是一门强大的编程语言,其在C语言的基础上进行了扩展,引入了许多现代化的特性。这份笔记主要涵盖了C++的基础知识,包括C++11和C++17的新特性,旨在帮助初学者理解C++的核心概念。 ### C++...
- 如果没有显式定义构造函数,则编译器会自动生成一个默认构造函数。 - 构造函数可以被重载,以便支持不同的初始化方式。 - 创建对象时,构造函数自动调用。 2. **析构函数**: - 析构函数用于清理对象释放资源...
【C语言和C++Builder学习笔记】 C语言和C++是两种广泛使用的编程语言,它们在软件开发领域占据着重要地位。C语言以其简洁、高效和底层操作能力著称,而C++则在C的基础上引入了面向对象编程,极大地扩展了其应用范围...
c++学习,mfc视频 笔记 构造函数:类创建一个变量后,就要为其分配内存空间,该内存空间就是由构造函数来分配的;每个类都必须创建一个构造函数,没有的话,就不能创建对象,如果没有定义构造函数,编译器会默认提供...
这个“C & C++学习笔记集合”显然是一份综合性的资源,旨在帮助学习者深入理解和掌握这两种语言。 C 语言是基础,它的语法简洁明了,对内存管理有直接的控制,是理解计算机底层工作原理的良好起点。C 语言的核心...
C++ Primer 是一本经典的C++学习书籍,涵盖了C++的基础知识和高级特性。这篇学习笔记主要涉及了C++编程的一些核心概念,包括程序结构、变量、基本类型、初始化与赋值、可读性、常量与引用、typedef、枚举以及标准库...
C++学习笔记和常见面试知识点,C++11特性,包括多态、虚表、移动语义、友元函数、符号重载、完美转发、智能指针、const和static、数组指针和指针数组、struct内存对齐、enum和union关键字等等。帮助了解C++的特性,...
### c++学习笔记之拷贝构造函数详解 在C++编程中,理解并正确使用拷贝构造函数至关重要,尤其在处理复杂数据结构和资源管理时更是如此。本文将深入探讨拷贝构造函数的概念、作用以及如何正确实现它,帮助读者避免...
理解封装、继承和多态的概念,以及构造函数、析构函数、友元等特性。 9. **标准库**:C++标准库提供了大量实用的功能,如输入/输出流(iostream)、容器(vector、list、map等)、算法(sort、find等)、字符串处理...
总结,C++学习笔记涵盖了从基础到高级的各种主题,包括面向对象编程的精髓、模板和标准库的使用、异常处理和命名空间的管理,以及C++11及后续标准的新特性。通过深入理解和实践这些知识点,开发者能够熟练掌握C++,...
标题"Cpp.rar - C++学习笔记"暗示了这份压缩包可能包含一系列关于C++的学习资料,比如笔记、代码示例或者教程。这些笔记可能会涵盖C++的基础语法、类与对象、模板、异常处理、STL(标准模板库)、内存管理等方面。...
内容概要:这是关于《C++ Primer学习笔记》的文章,涵盖多种类型转换、异常机制、类静态成员、IO库介绍、顺序容器操作、泛型算法应用、关联容器概念与使用详解、动态内存智能指针管理、构造函数与拷贝构造细节探讨、...
这份"C++学习笔记、心得"涵盖了从基础语法到面向对象编程的概念,是作者一个半月辛勤学习的结晶。在这里,我们将深入探讨其中可能包含的知识点,并提供一些理解和应用C++的关键指导。 1. **基础语法**:C++的基础...
- **构造函数**:派生类的构造函数可以调用基类的构造函数,通过成员初始化列表来初始化基类成员。例如: ```cpp 派生类名::派生类名(参数表 0) : 基类名(参数表) { // 函数体 } ``` - **析构函数**:派生类...
这只是C++学习笔记的冰山一角,深入学习还将涉及类、对象、派生类、构造函数、析构函数、运算符重载、模板、预处理指令、容器、函数指针、函数对象以及Lambda表达式等。面向对象编程是C++的核心特性,包括封装、继承...
4. **构造与析构函数**:构造函数在对象创建时自动调用,用于初始化成员变量;析构函数在对象生命周期结束时调用,用于清理资源。 5. **封装**:封装是面向对象的三大特性之一,通过访问修饰符(public、private、...