因为没有学过c++,而c++作为面向对象程序设计语言,在工作中又可能常常会见到。
所以先了解一点点c++的基础知识。
至于未来要怎么学,那就视具体需要而定了。
1. class/object/instance
c++中的class就类似于c语言中的struct类型一样,可以把它理解成一种数据类型;
object相当于定义的某个class类型的变量;
instance就是某种class类型的具体的数据。
所以class是抽象的、无需占用内存的;
object和instance是具体的,是需要分配内存的。
string---->是一个class;
string str;---->这里str是string这个class的一个object;
str = "abcd";---->这里的"abcd"是string这个class的一个instance
c++在class中提供了构造函数和析构函数,其中:
构造函数用来在创建对象时执行,去初始化一个对象;
析构函数用来在对象消亡时去执行。
构造函数和析构函数与class名字同名,并且它们由编译器自动执行;
构造函数和析构函数都没有返回值。
因为存在很多因为变量未初始化带来的程序发生问题的案例,
所以c++语言中在设计时增加了这样两个函数用来提醒程序员对变量进行初始化。
提醒:
c程序设计中,必须有意识的对变量进行初始化。
new/delete是c++中用于分配和释放内存的两个运算符。
因为是运算符,所以编译器在编译阶段就会进行处理。
c++语言中增加new/delete运算符是为了自动执行构造函数和析构函数?
c/c++语言中,标准的内存分配和释放函数是:
#include <stdlib.h>
void *malloc(size_t size);
void free(void *ptr);