广州市网站建设企业,网络营销4c策略是什么,秦皇岛开发区建设局网站,网站常用的中文字体一.类与对象的思想
1.1面向对象的特点 封装、继承、多态 1.2类的概念 创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例#xff08;Instance#xff09;#xff0c;拥有类的成员变量和成员函数。由{ }包围#xff0c;由#xff1b;结束。 class name{
//类的…一.类与对象的思想
1.1面向对象的特点 封装、继承、多态 1.2类的概念 创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例Instance拥有类的成员变量和成员函数。由{ }包围由结束。 class name{
//类的成员类体成员变量类的属性成员函数类的方法
} 关键字 class 以下是一个简单类的定义
class person{//类person
public://成员变量char *name;int age;double height;//成员函数void say(){coutname的年龄是age身高是heightendl;}//声明成员函数的同时也定义成员函数};
注
1类是一种构造类型类的定义由一个分号结束不能省略它是类的一部分。2一个类可以创建多个对象每个对象都是类类型的一个变量。3类成员变量的访问方法通过 . 或者 -来访问4成员函数是类的一个成员出现在类中作用范围由类来决定而普通函数是独立的作用范围是全局或者某个命名空间。
区别【类】与【结构体】
struct 内部默认是共有权限结构体外部可以访问其内部成员class内部默认是私有权限类的外部不能直接访问内部成员可以手动声明为共有权限; 1.3类的成员变量与成员函数
类这种数据类型是一个包含成员变量和成员函数的集合。 类的成员变量和普通变量一样也有数据类型和名称占用固定长度的内存。 但是在定义类的时候不能对成员变量赋值因为类只是一种数据类型或者说是一种模板本身不占用内存空间而变量的值则需要内存来存储。 类的成员函数也和普通函数一样都有返回值和参数列表。 成员函数与普通函数的区别是 成员函数是一个类的成员出现在类体中它的作用范围由类来决定而普通函数是独立的作用范围是全局的或位于某个命名空间内。 成员函数可以在声明时定义也可以在类中声明 在类外定义这时需要域解析符 class Student{public://成员变量char *name;int age;float score;//成员函数void say(); //函数声明};//函数定义void Student::say(){coutname的年龄是age成绩是scoreendl;}
在类体中直接定义函数时不需要在函数名前面加上类名因为函数属于哪一个类是不言而喻的。 但当成员函数定义在类外时就必须在函数名前面加上类名予以限定。::被称为域解析符也称作用域运算符或作用域限定符用来连接类名和函数名指明当前函数属于哪个类。成员函数必须先在类体中作原型声明然后在类外定义也就是说类体的位置应在函数定义之前。
1.4对象的创建与访问
1对象的创建
将person看作新的数据类型用类名构造对象 类名 对象名 person LiHua class person LiHua//也可以 构造对象数组 person student【100】 构造对象指针 person stu; person * pstustu; 创建的对象 stu 在栈上分配内存需要使用获取它的地址。
pstu 是一个指针它指向 Student 类型的数据也就是通过 Student 创建出来的对象。
也可以在堆上创建对象这时需要使用new关键字: person *pstu new stu; 使用 new 在堆上创建出来的对象是匿名的没法直接使用必须要用一个指针指向它再借助指针来访问它的成员变量或成员函数。栈内存是程序自动管理的不能使用 delete 删除在栈上创建的对象堆内存由程序员管理对象使用完毕后可以通过 delete 删除。在实际开发中new 和 delete 往往成对出现以保证及时删除不再使用的对象防止无用内存堆积。
2对象的访问
一般的对象可以使用点号.来访问成员变量和成员函数这和通过结构体变量来访问它的成员类似 person stu;stu.name 小明;stu.age 15;stu.height 1.65;stu.say();
对象指针可以通过箭头-来访问对象的成员变量和成员函数这和通过结构体指针来访问它的成员类似。
person *pstustu;
pstu - name 小明;
pstu - age 15;
pstu - height 1.66;
pstu - say(); 1.5类成员的访问权限
将类内分为公共权限public、保护权限protected、私有权限private public 公共权限类内可以访问类外也可以访问 protected 保护权限类内可以访问类外不能访问 private 私有权限类内可以访问类外不能访问 class T{
private:int a;void f1(){}
protected:int b;void f2(){}
public:int c;void f3(){}
};int main(){T t;//创造对象t.c3;t.f3();//私有成员无法通过外部访问//t.a1;错误//t.f1(){ };错误//t.b2;错误return 0;
}注 1. public修饰的成员在类外可以直接被访问2. protected 和 private 修饰的成员在类外不能直接被访问 (此处protected和private是类似的)3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止4. 如果后面没有访问限定符作用域就到 } 即类结束5. class的默认访问权限为 privatestruct 为 public(因为struct要兼容C) #include iostream
using namespace std;
//类的声明
class Student{
private: //私有的char *m_name;
public: //共有的void setname(char *name);void show();
};
//成员函数的定义
void Student::setname(char *name){m_name name;
}
void Student::show(){cout名字是m_nameendl;
}int main(){//在栈上创建对象Student stu;//stu.m_name小明“错误私有成员变量不能在类外部通过对象访问stu.setname(小明);stu.show();//在堆上创建对象Student *pstu new Student;pstu - setname(李华);pstu - show();return 0;
} 给成员变量赋值的函数通常称为 set 函数它们的名字通常以set开头后跟成员变量的名字 读取成员变量的值的函数通常称为 get 函数它们的名字通常以get开头后跟成员变量的名字。 二. 构造函数
2.1构造函数的定义
在C中有一种特殊的成员函数即构造函数 Constructor构造函数的名字和类名相同没有返回值不需要用户显式调用用户也不能调用而是在创建对象时自动执行。 构造函数 1.函数名必须和类名称相同。2.不能有返回值也不能返回void函数体不能有return语句。3.它的作用是给 属性的成员变量赋值。4.构造函数必须是 public 属性的否则创建对象时无法调用。5.构造函数在定义对象时会自动调用不需要手动调用。 要想调用该构造函数就得在创建对象的同时传递实参并且实参由( )包围和普通的函数调用非常类似。 #include iostream
using namespace std;
class Student{
private:char *m_name;int m_age;float m_score;
public://声明构造函数Student(char *name, int age, float score);//声明普通成员函数void show();
};
//定义构造函数
Student::Student(char *name, int age, float score){m_name name;m_age age;m_score score;
}
//定义普通成员函数
void Student::show(){coutm_name的年龄是m_age成绩是m_scoreendl;
}
int main(){//创建对象时向构造函数传参Student stu(小狼, 16, 96.5f);stu.show();//创建对象时向构造函数传参Student *pstu new Student(sakura, 15, 97);pstu - show();return 0;
}2.2构造函数的重载