`
unblue2008
  • 浏览: 12650 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
最近访客 更多访客>>
社区版块
存档分类
最新评论

C++基础知识

    博客分类:
  • C++
阅读更多
C++是一门面向对象的语言,是一门开发语言。对于只做功能的测试人员来说是不需要掌握的,但有很多公司有时候在笔试和面试的过程中经常问到有关C++的一些知识点。
比如说:什么是类?什么是对象?什么是重载?什么是构造函数?什么是拷贝构造函数?什么是析构函数? 什么是封装?什么是继承?什么是多态?什么是运算符重载?
类是对象是世界的一种抽象,比如我们可以把男人女人抽象为人类,把阿猫阿狗抽象为动物类。
例如:
class human
{
    private:
          身高;
           体重;
           姓名;
           饭量;
    public:
           eating(){饭量=50克;}
          running();
          singing();
};


对象是类的实例化,比如说我们首先定义了人类,那么我们可以通过定义的人类来生成一个名叫刘德华的对象。
human 刘德华;
我们发现human这个类具有姓名,身高,体重的属性,human能够吃饭跑步和唱歌。
我们一般怎么使用human类呢?
一般是通过human生成一个对象,比如说刘德华。
这样刘德华就具有human类的所有属性和方法,而且可以使用这些属性和方法。
简单举个例子:
大家都喜欢吃雪糕,
做雪糕的模具就是类,我们是没有办法吃的。
但我们可以通过这个模具(也就是类)生成一个雪糕(也就是对象)。
那下面我们说说
什么是封装?
封装也就是信息屏蔽。当然不是对所有的信息都屏蔽。
比如刚才的那个human类,他有private修饰的变量,都是一个私有变量。这个私有变量,我们是没有办法直接访问的(这个就是对于它的直接访问我们进行了有效的屏蔽),我们一般都是通过human生成一个对象比如说:
human 刘德华;
我们是通过刘德华的公有函数来访问其私有变量的。
比如私有成员里面有个饭量,对于这个饭量的访问,我们是通过eating这个公有的函数来直接访问私有的成员。
这样我们对类里面的数据有了一个很好的封装。
封装说完了,
我们说几个大家需要知道的基本概念:
重载其实就是函数名字相同,而函数的参数类型或参数个数不同。
构造函数:函数名与类名相同,在定义对象的时候系统自动调用的函数。
析构函数:函数名与类名相同,但是要在函数名名前加~ 号。在对象销毁的时候系统自动调用的函数。
拷贝构造函数:在用一个已经构造好的对象初始化另一对象的时候,系统自动调用的函数。

下面直接说说继承:
什么是继承?
比如说我们定义了一个类为:人类。
class human
{
}
接着我们又定义了一个类为女人类,我们发现女人是人类的一种,所以女人就可以继承于人类。
class woman: public human
{

如果男人继承了人类,那么凡是人类有的,女人都有,但是女人有的人类就不一定有。比如说女人会生孩子,她又一个生孩子的方法,但人类中的其中一种也就是男人是不会生孩子的。
以后凡是遇到  ...是..的一种的我们都可以用继承。
比如男人是人的一种。
猫是动物的一种。
等等。
在面试中笔试中
继承一般与多态合起来问得比较多。
那什么是多态呢?
抽象成一句话:
多态是用虚函数 实现的,
是用基类的指针指向子类的对象后,我们可以用基类的指针访问与同名的函数,这个时候基类指针会根据它指向的具体对象动态确定访问的函数。
举个例子:
我们有一个shape类,还有一个circle类,还有一个triangle类。
其中circle和triangle继承与shape类,假设这三个类都有相同的成员函数draw()

这个时候,
shape *ptr;
circle c;
triangle t;
ptr=&c;用基类指针指向子类对象
ptr->draw(); 基类指针访问同名成员函数时会根据指向的对象而确定是访问那个同名函数。比如这个要访问得是c的draw()方法。
这就是多态。
什么是运算符重载?
也对运算符的进行自定义。一般用operator关键字实现。
比如说原来我有个加法运算符,现在我想把这个加法重定义成减法,使加法运算符实现减法的功能。这样可以吗?
当然可以,但我们一般不这样做。

补充一些额外的:
什么是引用?
引用就是变量的别名,比如有个人叫张天宝,小名 张三拐。
我们可以知道:张天宝和张三拐是一个人。在C++中引用用的也比较多。
什么是this指针?
this指针是隐含的指针,它是对象在调用一个函数时就已经隐含存在的,this是指向对象本身的指针。一般是隐含存在的。
比如说,我们前面的讲的human那个类。
刘德华.eating();
这个时候在eating函数被调用的时候,eating函数内隐含使用的是this对象的成员。
我们来看看eating()函数的实现。
human::eating()
{
饭量=50克;这个饭量就是刘德华的饭量,等价与this->饭量=50克;
}

声明一下:在C++里面一般称函数为 方法。
         数据成员为属性。
其实就是叫法的不同罢了。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/djbtestingsky/archive/2007/12/16/1942415.aspx
分享到:
评论

相关推荐

    C++基础知识总结

    ### C++基础知识总结 #### 一、C++数据和变量的类型及变量作用域 **1. 基本的内置类型** C++提供了一系列基本的内置数据类型,用于存储不同种类的数据。以下是一些常见的类型及其特点: - **布尔型 (`bool`)**:...

    c++ 基础知识手册

    以下是一些C++基础知识的详细介绍: 1. **变量与数据类型**:在C++中,变量是存储数据的容器。每种变量都有特定的数据类型,如整型(int)、浮点型(float或double)、字符型(char)和布尔型(bool)。声明变量时需指定其...

    c++基础知识(面试常见问题)

    C\c++基础知识,面试常见问题 C\c++基础知识,面试常见问题

    C++基础知识课件学习

    C++基础知识介绍,清楚简单明了,很容易进行记忆与学习

    C++ 基础知识 C++ 基础知识

    在学习C++基础知识时,你需要掌握以下几个关键点: 1. **基础语法**:C++的基础语法与C语言相似,包括变量声明、数据类型(如int、char、float等)、运算符(如算术运算符、比较运算符、逻辑运算符等)、流程控制...

    C++基础知识总结入门级

    "C++基础知识总结入门级"这个主题涵盖了初学者需要掌握的关键概念,让我们一一展开讨论。 首先,C++的IO系统是程序与用户交互的基础。`C++的IO.txt`可能包含关于iostream库的内容,如cin和cout用于标准输入输出,...

    c++基础知识chm文件

    C++基础知识.chm文件提供了详细的C++教程,包括各个主题的索引,对于学习者来说是非常有价值的参考资料。 理解并掌握这些C++基础知识是成为熟练C++程序员的关键步骤。通过深入学习和实践,你可以逐步掌握这个强大...

    编程语言C++基础知识课件

    C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在1979年设计并开发,...这份"编程语言C++基础知识课件"将引导你逐步掌握这个强大语言的关键概念,无论你是初学者还是有一定经验的开发者,都将从中受益匪浅。

    C++基础知识讲义v1

    《C++基础知识讲义v1》是一份专为初学者设计的C++教程,涵盖了C++编程语言的基础概念和重要特性。这份讲义通过一系列的PPT文件,深入浅出地讲解了C++的核心知识,旨在帮助学习者快速掌握这门强大的编程语言。 1. **...

    C++基础入门.pdf

    C++是一种功能强大且灵活的编程语言,本文档旨在为读者提供一个基本的C++基础知识入门指南,包括创建项目、编写代码、运行程序、注释、变量、常量、关键字、标识符命名规则和数据类型等方面的知识点。 1. 创建项目...

    C++基础知识讲义v2

    这份"C++基础知识讲义v2"是一份专为初学者和初级C++讲师设计的学习资料,涵盖了C++的基础概念和关键特性。 1. **编程入门**(c++基礎知識1編程入門.pps):这部分通常会介绍C++的历史、基本语法,如变量声明、数据...

    涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论等

    涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论、 智能指针、C++11、 Git教程 Linux命令 Unix操作系统(进程、线程、内存管理、信号)计算机网络、 数据结构(排序、查找)、数据库、、...

    c++基础知识

    本压缩包文件“c++基础知识.chm”提供了一个全面的学习C++基础知识的资源,对于初学者和有经验的程序员来说都是宝贵的参考资料。 首先,C++的基础知识包括语法和概念,这是理解和编写C++程序的基础。语法方面,C++...

    C++基础知识.rar

    这个名为"C++基础知识.rar"的压缩包文件似乎是一个针对初学者的C++入门教程,旨在帮助学习者掌握C++的基础概念和编程技巧。 在C++的基础知识中,首先会介绍C++的历史和其与其他编程语言的关系,然后逐步深入到语言...

    C++基础知识测试&答案.rar

    这个名为"C++基础知识测试&答案.rar"的压缩包文件包含了两份文档,分别是"C++基础知识测试答案.doc"和"C++基础知识测试.doc",它们旨在帮助学习者检验和巩固C++的基础知识。 在"C++基础知识测试.doc"中,你可能会...

    C++基础知识.doc

    C++基础知识 C++基础知识是C++入门者和面试C++工程师岗位前的必备知识点总结。它涵盖了语法语义、STL、排序算法等面试常问的知识点。 一、面向对象的程序设计思想 面向对象的程序设计思想是把数据结构和对数据...

    c++基础知识电子书

    本电子书“C++基础知识”旨在为初学者提供一个全面且实用的C++学习资源,帮助他们从零开始掌握这门语言。 C++起源于C语言,由Bjarne Stroustrup在1983年为了增加面向对象的特性而设计。它不仅继承了C语言的高效和...

    计算机二级C++基础知识.doc

    在当今的计算机科学教育中,掌握计算机二级C++基础知识是衡量一个学生是否具备扎实计算机科学基础的重要标准。计算机二级C++考试是专业技能认证体系中的重要一环,它对考生掌握计算机基本原理、数据结构和算法设计...

Global site tag (gtag.js) - Google Analytics