自定义数据类型与对象:VC2005中的结构与类

需积分: 3 2 下载量 113 浏览量 更新于2024-12-18 收藏 1MB PDF 举报
"VC2005入门经典 第七章 自定义数据类型" 在C++编程中,自定义数据类型是提升代码可读性和模块化的重要手段,这在微软的Visual C++ 2005版本中同样适用。第七章主要讲解如何利用结构(struct)和类(class)创建自己的数据类型,以及面向对象编程的基础概念。 结构(Struct)是C++中的一个基础构造,用于组合多种数据类型成一个新的复合类型。在C++2005中,尽管类的功能更为强大,但结构体仍然广泛用于Windows编程,尤其是在处理与C语言兼容的代码时。结构的概念允许我们将相关数据组织在一起,形成一个单一的实体。例如,定义一个描述书籍的结构体,可以包括书名、作者、出版社等属性。 ```cpp struct Book { string title; string author; string publisher; int publicationYear; }; ``` 上述代码定义了一个名为`Book`的结构体,包含了四个成员:字符串类型的`title`、`author`和`publisher`,以及整型的`publicationYear`。 接着,类(Class)是面向对象编程的核心,它不仅包含数据(成员变量),还可以包含操作数据的方法(成员函数)。类可以看作是对象的蓝图,而对象则是类的实例。类的定义通常如下: ```cpp class Book { public: string title; string author; string publisher; int publicationYear; void setAuthor(string newAuthor) { author = newAuthor; } }; ``` 在这个例子中,`setAuthor`是一个公共成员函数,用于设置书的作者。类的访问控制(如public、private、protected)允许我们管理哪些部分的数据和功能可以被外部代码直接访问。 构造函数是类的一个特殊函数,它在创建对象时自动调用,用于初始化对象的状态。在C++2005中,你可以定义默认构造函数(无参数的构造函数)和带有参数的构造函数,以便在创建对象时提供初始值。例如: ```cpp class Book { public: Book(string t, string a, string p, int y) : title(t), author(a), publisher(p), publicationYear(y) {} // 默认构造函数 Book() : title(""), author(""), publisher(""), publicationYear(0) {} // ...其他成员函数 }; ``` 此外,C++/CLI是.NET框架下C++的一个扩展,它引入了一些新的特性,如属性(Property)、字面值字段(Literal Field)和initonly字段。属性用于封装类的成员变量,提供了一种更安全的访问方式。字面值字段是只读的,一旦初始化后不能更改。initonly字段类似于只读字段,但可以在构造函数中初始化。 静态构造函数是不接受参数且不返回值的特殊成员函数,它在类的第一个对象创建之前或者类的静态成员首次访问时被调用,用于执行类级别的初始化工作。 第七章的内容涵盖了C++中创建和使用自定义数据类型的基础知识,包括结构体、类、构造函数,以及C++/CLI中的一些高级特性。这些概念对于理解和编写复杂的C++程序至关重要。