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 }
  • 相关阅读:
    剑指offer---尾到头打印链表
    剑指offer---链表中环的入口结点
    剑指offer---删除链表中重复的结点2
    剑指offer---删除链表中重复的结点
    6.shap以及selector的使用
    7.进度条(ProgressBar)
    5.toogleButton以及Switch
    4.基础控件
    3.触摸事件
    2.点击事件和页面切换
  • 原文地址:https://www.cnblogs.com/jeavenwong/p/7659590.html
Copyright © 2011-2022 走看看