1,对象是什么?类又是什么?

对象是个相对具体的概念,比如说老虎,狮子,人;类是个相对抽象的概念,比如说哺乳动物,是对有相同特性的对象的一个划分。

2,面向过程和面向对象的区别?

面向过程:“过程”,顾名思义,就是说要针对某一步,就是实现代码是按照步骤来,比如打开冰箱,分三步,你一步一步的的去实现;

优点:代码耦合性强,想想每一步都是互相关联写出来的,耦合性能差么。

缺点:可测性差,想测试某个功能对不对,就需要整体来一遍,太麻烦。

面向对象:“对象”,也就是说,要针对某个东西,针对它的特点去实现,比如打开冰箱,分冰箱和人,人做什么,冰箱做什么。

优点:可测性强,看某个对象对不对,可以单独对其进行测试。

缺点:耦合性弱,实现的对象之间,并无直接关系,你实现你的,我实现我的,最后拼起来用。

3,面向对象的特性是什么?

封装,继承,多态。

封装:封装嘛,就是把东西包起来,代码呢,就是把一些变量给包起来,对外,只提供使用方法,不需要看到内部做了什么。

继承:这个就是c++的优势来源之一,将父类的东西继承过来,直接用,不需要再把父类的东西写一遍。

多态:这个是基于继承的,如果没有继承,就谈不上多态,子类继承父类的东西,加上自己独有的,就会呈现多态。

C++的多态性具体体现在运行和编译两个方面:

在程序运行时的多态性通过继承和虚函数来体现;

在程序编译时多态性体现在函数和运算符的重载上;

4,c++是类型安全语言吗?

c和c++都不是,因为它们都可以做类型强制转换。c#是类型安全语言。

5,构造函数和析构函数的作用是什么?

构造函数:

类的构造函数是一类比较特殊的成员函数,在创造类的时候被调用,构造函数的名字和类的名字一样,构造函数没有返回值,参数可有可无。

#include <iostream>

using namespace std;

class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); // 这是构造函数

private:
double length;
};

// 成员函数定义,包括构造函数
Line::Line(void)
{
cout << "Object is being created" << endl;
}

void Line::setLength( double len )
{
length = len;
}

double Line::getLength( void )
{
return length;
}
// 程序的主函数
int main( )
{
Line line; //创建类的一个新对象
cout << "here" << endl; /*加这句是为了验证下面函数被调用前,构造函数已经被执行*/
// 设置长度
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <<endl;

return 0;
}

代码来源:参考5

析构函数:

类的析构函数也是一种比较特殊的类的成员函数,在删除所创建的对象时调用,析构函数的名字和类一样,只是前面加了一个~,没有返回值,也没有参数。

#include <iostream>

using namespace std;

class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); // 这是构造函数声明
~Line(); // 这是析构函数声明

private:
double length;
};

// 成员函数定义,包括构造函数
Line::Line(void)
{
cout << "Object is being created" << endl;
}
Line::~Line(void)
{
cout << "Object is being deleted" << endl;
}

void Line::setLength( double len )
{
length = len;
}

double Line::getLength( void )
{
return length;
}
// 程序的主函数
int main( )
{
Line line;

// 设置长度
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <<endl;
cout << "here" << endl; /*这个地方就是为了验证,在return前,创建的对象被删除了*/
return 0;
}

代码来源:参考5

6,c++有布尔类型吗?

c++有布尔类型,用关键字bool定义。


参考3:​​https://baike.baidu.com/item/%E7%B1%BB%E5%9E%8B%E5%AE%89%E5%85%A8/7308285​


参考5:​​http://www.runoob.com/cplusplus/cpp-constructor-destructor.html​