[学习笔记-C++篇]自我挑战30天熟悉C++整体框架--2

人麻了,没想到中间隔了这么久。厚着脸皮说是第2天。

学习链接:C++入门教程,C++基础教程(更新完毕)
在线编程:菜鸟工具或者ideone

DAY 2


理论及操作

  • class为类的关键字,其后为类名称,{}内为类中的变量。public为关键字,只用于类的定义中。注意,类定义最后需要加上;符号。引用类中的成员用符号.
class Student{
public:
    //成员变量
    char *name;
    int age;
    float score;
    //成员函数。
    void say(){
        cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
    }
};

//创建对象
Student xuesheng;
class Student xuesheng;//两种方式都对,常用第一种

//创建对象数组
Student xuesheng[100];
  • 对象指针。栈内存是程序自动管理的,不能使用 delete 删除在栈上创建的对象;堆内存由程序员管理,对象使用完毕后可以通过 delete 删除。使用指针访问类的成员需要用符号->
//指针就没搞明白过。
//首先是类中定义的指针
class Student{
public:
    //成员变量
    char *name;//这里我理解的是,类中有一个指针类型的数据对象,该指针指向一个char类型的数据
    int age;
    float score;
    //成员函数。
    void say(){
        cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
    }
};
int main(){
    //创建对象
    Student stu;
    stu.name = "小明";//对成员赋值的时候,无论是不是指针类型,都只用符号.去赋值(或者取值),指针name指向char类型的数据"小明"
    stu.age = 15;
    stu.score = 92.5f;
    stu.say();
    return 0;
}

//上面那种是在栈上定义,下面是在堆上定义

//其次是类指针
#include <iostream>
using namespace std;
class Student{
public:
    char *name;
    int age;
    float score;
    void say(){
        cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
    }
};
int main(){
    Student *pStu = new Student;//如果使用new创建对象,由于没有分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,再借助指针来访问它的成员变量或成员函数。
    Student stu;
    Student *pStu = &stu;//第二种,先定义,再指定指针
    pStu -> name = "小明";
    pStu -> age = 15;
    pStu -> score = 92.5f;
    pStu -> say();
    delete pStu;  //删除对象,搭配new使用
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值