C++面向对象编程练习与解析

需积分: 16 6 下载量 186 浏览量 更新于2024-09-12 收藏 86KB DOC 举报
"C++实验及答案" 这篇资料主要涵盖了C++编程语言的基础概念,特别是面向对象编程的关键要素,包括类的定义、成员访问控制、对象的使用、指针与引用、构造函数、继承、多态性以及运算符重载等核心知识点。 1. 在C++程序中,访问成员函数通常通过对象名或指针进行调用。在提供的代码片段中,`p1.show()`是通过对象p1访问show函数,而`(*p).show()`是通过指针p访问show函数。 2. C++类中的成员可以有公有(public)、保护(protected)和私有(private)三种访问控制权。公有成员对外界完全开放,保护成员只允许子类和同一类的成员访问,私有成员只能被类内部的函数访问。 3. 定义类时,使用`class`关键字标识类定义的开始。 4. 如果一个类包含至少一个纯虚函数(`virtual`函数无函数体),那么这个类被称为抽象类。抽象类不能被实例化,但可以作为其他类的基类。 5. C++类由数据成员和成员函数组成。友元函数不是类的成员函数,它们可以访问类的私有和保护成员,用关键字`friend`声明。 6. 友元函数是独立于类的函数,但可以访问类的私有和保护成员,它们不是类的成员,但通过`friend`关键字修饰。 7. 在给定的表达式中,`j`是`i`的引用。当`i`赋值为10时,`j`也变为10。之后`j=i+1`使得`j`变为11,但`i`仍然是10。因此,`i`=10,`j`=11。 8. `new`关键字用于动态分配内存,通常用于创建对象或数组;`delete`关键字用于释放由`new`分配的内存,防止内存泄漏。 9. 面向对象语言的特性包括数据封装(A)、继承(B)和多态性(C)。模板(D)是C++的一个特性,但不是面向对象独有的。 10. 引用(B)是给变量取一个别名,它是一个变量的同义词,而不是指针或者枚举或结构。 11. 类的私有(C)成员只能被本类的成员函数和友元函数访问。 12. 构造函数(D)可以在派生类中有多于一个的重载版本,但每个类只有一个默认构造函数。 13. 派生类可以访问基类的公有(A)和保护(B)成员,但不能直接访问私有成员。 14. 运算符重载(D)不能改变运算符的优先级或结合性,但可以改变操作数的个数和功能。 15. C++中的字符串连接可以用`+`运算符实现,如`C+"apples"`会将"C"和"apples"连接成一个字符串。 这些题目旨在测试和巩固对C++基本概念的理解,特别是面向对象编程的核心概念。解答这些题目可以帮助学习者更好地掌握C++语言的使用。