C++(笔记)类、构造器基础

    xiaoxiao2021-03-25  105

    一、创类

    1.类的特征

    1.类:决定一个对象将是什么样的(具备什么属性和功能) 2.类包含什么: 属性(特征,成员变量)和方法(功能操作,成员函数)

    2.类的成员访问

    1.类内访问:通过成员函数(不限) 2.类外访问:对象、对象指针(公有)

    3.类的类型

    1.公有类型(一般是方法):public关键字声明,该类型成员定义了类的外部接口,在类外只能访问该类的公有成员 2.私有类型(一般是属性):private关键字声明,只能被本类成员函数访问,来自类外部任何访问非法 3.保护类型:暂时先不解

    4.类的基本结构

    class 类名称 { public:(必须要有) 成员函数 private: 成员变量 }; /// /// 成员函数的实现 void(函数返回类型) 类名称::成员函数名(参数) { 实现内容 } /// /// 主函数使用类 1.先定义类的变量:类名称+自己定义变量名 2.利用自己定义的类的变量调用成员函数:自己定义变量名.成员函数

    5.创类实例

    #include <iostream> using namespace std; class Clock{ public://外部接口,公有成员函数 void setTime(int h=0,int m=0,int s=0); void getTime(); private://私有成员 int hour,minute,second; }; void Clock::setTime(int h,int m,int s) { hour=h; minute=m; second=s; } void Clock::getTime() { cout<<hour<<":"<<minute<<":"<<second<<endl; } int main() { Clock myClock; cout<<"first time"<<endl; myClock.setTime();//设置时间为默认值 myClock.getTime();//显示时间 cout<<"second time"<<endl; myClock.setTime(8,30,30); myClock.getTime(); return 0; } ///000 ///8,30,30

    二、构造器

    (初始化工作,在定义中,对成员变量赋初值)

    1. 构造器注意点

    1.构造器的名字必须和它所在的类的名称完全相同 2.系统在创建某个类的实例时,会第一时间自动调用这个类的构造器 3.构造器永远不会返回任何值 4.若没有自己添加构造器,编译器会自动添加最简单的构造器

    2.构造器创建

    ///构造器中无参 class A { public: A(); … }; A::A() { 成员变量=值; … } … int main() { A myA; myA.输出作用的成员函数 … } /// 构造器中有参 class A { public: A(int p=8){//这里是类内定义了 成员变量=p; } … }; int main() { … }

    3.构造器无参和有参实例

    //无参构造器 #include <iostream> using namespace std; class A { public: A();//无参构造器 void setA(int newA); void getA(); private: int q; }; A::A() { q=3; } void A::setA(int newA) { q=newA; } void A::getA() { cout<<q<<endl; } int main() { A a; a.getA(); a.setA(1); a.getA(); return 0; } //有参构造器 #include <iostream> using namespace std; class A { public: A(int p=7){//含参构造器,函数可以类内定义也可以类外定义 q=p; } void setA(int newA); void getA(); private: int q; }; void A::setA(int newA) { q=newA; } void A::getA() { cout<<q<<endl; } int main() { A a; a.getA(); a.setA(1); a.getA(); return 0; }

    三、复制构造器

    1.作用

    我个人总结复制构造器作用就是使用一个你已经定义好的对象(已经存在),去初始化另一个同类的一个新对象

    2.实例说明复制构造器

    #include <iostream> using namespace std; class Person{ public: void setAge(int newAge); void getAge(); void getName(); Person(int a,char n){ age=a; name=n; } Person(Person &p); //赋值构造器 int geta(){return age;}//利用连个get函数来提取值 char getn(){return name;} private: int age; char name; }; Person::Person(Person &p)//复制构造器的定义 { age=p.age; name=p.name; cout<<"copy"<<endl; } void Person::setAge(int newAge) { age=newAge; } void Person::getAge() { cout<<age<<endl; } void Person::getName() { cout<<name<<endl; } int main() { Person p(14,'s');//这里就是使用已经存在的对象初始化同类的新对象 Person b(p); cout<<b.geta()<<endl; cout<<b.getn()<<endl; return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-20500.html

    最新回复(0)