类与对象-创新互联
1、C++语言是基于面向对象的,所以尤其四大特性:
10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有寿光免费网站建设让你可以放心的选择与我们合作。抽象、封装、继承、多态。、
抽象:对客观世界,现实实体的一类定义,找到共性;
封装:将数据及对数据上的操作捆绑起来;
继承:子子孙孙无穷匮也;
多态:主要体现在继承,同一事物的不同表现形式。
2、C++中的类:
与C语言中的结构体类似:
struct STU{ char name[15]; char id[9]; double score; };
以上就可以体现封装,将不同的数据类型封装起来,只是没有方法而已;
新的数据类型为:struct STU a(结构体变量)。
通过类比,可以知道,在C++中通过class定义新的数据类型,
class Test{ public: void setData(int x){ data; } private: int data; };
通过类将其封装起来,新的数据类型为Test a(对象)。
只不过在C语言中叫做结构体,在C++中叫就做类,是一种对事物共性的抽象,
比C多了对数据上的操作。
3、对象:
在C中将结构体定义的叫做,结构体变量,在C++中将类定义的叫做,对象。
创建对象两种方式:
静态创建:Test a; 创建后将对象压栈;
动态创建:Test *a = new Test; 其申请的空间在堆上,必须通过delete释放。
4、访问限定符:
public:公有 protected: 保护 private:私有;
C++中,通过对象只能访问一个类的public, 对protected和private修饰的通过对象不能调用。
5、深入理解类与对象:
当我们定义一个类的时候,相当于规划了一幅蓝图,没有实例化时,是没有空间的,通过类名.data是错误的。
实例化:Test t1(); 错 这个不会实例化对象t1,因为这是函数声明,t1是函数名称,无参,返回值为Test类型;
Test t2; 对 无参的初始化
Test t3(10); 对 含有一个参数的初始化
6、成员方法的实现:
可以在类内直接定义;
也可以在类内声明,类外定义,加上作用域限定符,
int Test::getData(){ return data; }
加上::这个之后表明getData是Test的成员函数。
7、C++重载
C语言为什么不能重载呢? 从汇编层面可以知道,
void fun(); int fun(int a); double fun(double a, double b)
以上三个函数在C角度看汇编都是fun;名字都相同;
从C++的角度看,其汇编层面的函数名字为:fun funi fundd,是不一样的,所以C++有函数的重载。
重载:函数名字相同,只与参数列表有关,与返回值无关。
在C++中对重载函数使用extern "C"就可以理解了,
extern "C":将当前函数(C++写的),当做C编译,而C编译只看函数名称,所以多个重载函数只能出现一次extern “C”!
要是出现两个,就会造成函数名相同,错误。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:类与对象-创新互联
网址分享:http://ybzwz.com/article/ecgco.html