zoukankan      html  css  js  c++  java
  • 浅谈C语言和C++中“类”的区别

    在C语言中,没有“类”的概念,但是可以由结构体struct构造出我们所需要的数据类型,struct可以组合不同的数据类型,可以看作是C语言中的“类”。

    下面是C语言中的结构体的实例。

     1 #include<stdio.h>
     2 #include<string.h>
     3 
     4 typedef struct Person{
     5     unsigned age;
     6     char name[20];
     7 }person;
     8 
     9 int main(void){
    10     person* xiao_ming = (person*)malloc(sizeof(person));   // 注意:p->q相当于(*p).q
    11     (*xiao_ming).age = 13;
    12     strcpy(xiao_ming->name,"xiao ming");
    13     printf("name is %s
    ",xiao_ming->name);
    14     printf("age is %d",xiao_ming->age);
    15     return 0;
    16 }

    在c++语言中则直接用class可以构造真正的类,并且实例化为对象。

    下面是简单的实例。

     1 #include<iostream>
     2 #include<string>
     3 #include<cstdlib>
     4 #include<cstddef>
     5 
     6 using namespace std;
     7 class Person{
     8     public:
     9         string name;
    10         size_t age;
    11 };
    12 
    13 class Shabi{
    14     public:
    15         string name;
    16         size_t age;
    17         Shabi(string m,size_t a):name(m),age(a){cout<<"构造了..."<<endl;}
    18         ~Shabi(){cout<<"析构了..."<<endl;}
    19 };
    20 
    21 int main(){
    22     Person* xiao_ming = new Person();
    23     xiao_ming->name = "xiao ming";
    24     xiao_ming->age = 13;
    25     cout<<"name is "<<xiao_ming->name<<endl<<"age is "<<xiao_ming->age<<endl;
    26     Shabi liu_ya = Shabi("liu ya",21);
    27     cout<<"shabi is "<<liu_ya.name<<endl<<"age is "<<liu_ya.age<<endl;
    28     return 0;
    29 }
  • 相关阅读:
    go语言的grpc安装记录
    MySQL1:客户端/服务器架构
    设计模式
    乐观锁与悲观锁的选择
    compareAndSwapObject 产生ABD原因
    wangEditor
    ckeditor4学习
    git公司远程提交
    java面试题总结
    基本数据类型和包装类
  • 原文地址:https://www.cnblogs.com/jeavenwong/p/7659590.html
Copyright © 2011-2022 走看看