IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c和c++的区别(二) -> 正文阅读

[C++知识库]c和c++的区别(二)

结构体的区别

~类型上不再需要struct关键字,直接用结构体名即可

~c++结构体允许函数存在

? ? ? ? ·在结构体中声明,在结构体外实现(ps:在函数中实现也可以)

? ? ? ? ·在结构体中的函数中访问数据可以直接访问

? ? ? ? ·学会调用

struct Student                  //定义结构体和c语言一样
{
    char name[20];
    int age;
    void print()
    {
    cout<<name<<"\t"<<age<<endl;//在结构体声明,在结构体中实现     

    }
    void printData();           //在结构体中声明,在结构体外实现
}    
 void Student::printData(){
    
   cout<<name<<"\t"<<age<<endl;/*用结构体名限定,在结构体中声明,在外面实现,
                                 告诉编译器这个函数来自哪里*/   

}

在c++中用结构体定义变量即可,不再需要struct关键字

    int main(){

        struct Student stu; //用c语言的方式也可以
        Student stu1;       //用c++的方式

}

~学会调用

和数据成员访问方式是一样的

????????~对象(结构体变量).成员

????????~对象指针->成员

????????~(* 对象指针).成员

在c++中? ? ~把函数称为行为/方法----->成员函数--->描述一个对象的行为

????????? ? ? ? ?~把数据称为属性/特性----->数据成员

struct Student                  
{
    char name[20];
    int age;
    void print()
    {
    cout<<name<<"\t"<<age<<endl;//在结构体声明,在结构体中实现     

    }
    void printData();           //在结构体中声明,在结构体外实现
}    
void Student::printData(){
    
   cout<<name<<"\t"<<age<<endl;

}


int main(){

        struct Student stu={"小芳",18};  //用stu对象调用函数,打印的内容就是stu中的内容
        Student stu1={"小丽",24};        //用stu1对象调用函数,打印的内容就是stu1中的内容
        stu.print();                     //输出 小芳 18
        (&stu1)->printData();            //输出 小丽 24
//指针方式
        Student* p=&stu1;
        p->printData();                  //输出 小丽 24

}

结构体中的变量必须要通过结构体变量(结构体指针,结构体数组)的方式访问

c++结构体中的函数访问属性不需要,可以直接访问,在结构体外访问必须要通过结构体变量访问

//通过外部函数修改数据(修改年龄)
int &getAge()            //提供返回引用的函数
{
    return age;
}
int main(){

    struct Student stu={"小芳",18};  
    Student stu1={"小丽",24}; 
 
    Student* p=&stu1;
    p->printData();    //输出 小丽 24

    p->getAge()=25;    //结构体不需要这样修改数据,只要有结构体变量就可以在外面直接访问
    p->printData();    //输出 小丽 25
    p->age=18;         //输出 小丽 18
    p->printData();

}

在c++中定义结构体数组

~不需要struct关键字,其他都一样

    Student array[3];//定义一个结构体数组

ps:
在c++没有写构造函数/权限限定的时候,结构体用法和c语言一样

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:01:39  更:2021-11-18 11:03:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:53:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码