人麻了,没想到中间隔了这么久。厚着脸皮说是第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;
}