C++中级-类的封装

类定义

#include <iostream>
#include <string>
using namespace std;


#define PI  3.141592657

class Circle {
    //访问权限
    //公共权限
public:
    //属性
    int half_r;
    //行为
    double cal() { return 2 * PI * half_r; }
};

class Studne {
public:
    string name;
    int id;
    void showUp() {
        cout << "name:" << name << endl;
        cout << "id:" << id << endl;
    };
    void setName(string myname) {
        name = myname;
    }
    void setID(int myid) {
        id = myid;
    }
};

int main() {

    //arg1
    Circle c1; //实例化
    c1.half_r = 20;
    int res = c1.cal();
    cout << res << endl;

    //arg2
    Studne s1;
    s1.setName("jack");
    s1.setID(65535);
    s1.showUp();



    return 0;
}

 

类的访问权限

#include <iostream>
#include <string>
using namespace std;
/*
public公共权限:类内YES,类外YES;
protected保护权限:类内YES,类外NOT;
private私有权限:类内YES,类外NOT
*/

class Person {
protected:string username;
    
private:string passwd;
    
public:
    string name;
    int age;
    void showInfo() {
        passwd = "111";
        username = "Could";
        cout << "Name:" << name << "Age:" << age <<"Passwd: "<<passwd<< endl;
    }
};
int main() { 

    Person p1;
    p1.age = 20;
    p1.name = "Ruby";
    //p1.passwd = "122";False!
    //p1.username = "ss";False!
    p1.showInfo();

    return 0; 

}

 类的属性私有化

#include <iostream>
#include <string>
using namespace std;

class Man {
//私有权限,只有内部能控制。
private:
    string name;
    int age;
    string wifeName;

public://外部不能设置值,所以通过public内部一个函数设置私有权限的值。
    void setManInfo(string mname, int mage, string wn) {
        name = mname;
        age = mage;
        wifeName = wn;
    };

    void ShowInfo() {
        cout << "He name is " << name << ",and he is  " << age << "years old,his wife is " << wifeName << endl;
    }
};



int main() { 
    Man m1;
    m1.setManInfo("mick", 33, "cat");
    m1.ShowInfo();
    

    return 0;
}

 

posted @ 2021-01-10 11:41  y0um  阅读(89)  评论(0编辑  收藏  举报

新人优惠服务器