码迷,mamicode.com
首页 > 其他好文 > 详细

类的简单说明

时间:2017-09-10 18:58:08      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:对象   init   prot   类成员   logs   ret   nbsp   protected   space   

/***********************************************************************
类和对象初步
面向对象的程序设计的基本特点:抽象,封装,继承,多态

类的定义:
class 类名{
    访问范围说明符:
     成员变量;
  ......
  成员函数;
  ......
};
访问范围一共有三种:public,private,protected

成员变量、成员函数的写法与普通的变量、函数相同。

一个类的成员函数之间可以相互调用。类的成员函数可以重载 ,也可以设定函
数的默认值。

成员函数的定义可以在类外:
返回值类型 类名::函数名{
    函数体;

所谓成员函数作用于某个对象上,指的是进入该成员函数时,函数中访问到的成
员变量是属于该对象的。

访问对象成员:
    对象名.成员名

#include <iostream>

using namespace std;

// 矩形类 
class CRectangle{
    public:
        int w, h;
        void init(int w_, int h_);   // 设置宽度和高度 
        int area();                  // 求面积 
        int perimeter();             // 求周长 
}; 

void CRectangle::init(int w_, int h_){
    w = w_;
    h = h_; 
}

int CRectangle::area(){
    return w*h;
}

int CRectangle::perimeter(){
    return 2*(w + h);
}

int main()
{
    int w, h;
    CRectangle r;
    cin >> w >> h;
    r.init(w, h);
    cout << "It‘s area is " << r.area() << endl;
    cout << "It‘s perimeter is " << r.perimeter() << endl;
    cout << sizeof(CRectangle) << endl;
    
    return 0;
}

类成员的访问范围:
    访问范围一共有三种:public,private,protected
    public: 指定公有成员,一个类的公有成员在任何地方都可以被访问
    private:用来指定私有成员,不论是成员变量还是成员函数,都只能在
 该类的成员函数内部才能被访问
     设置私有成员的机制叫做隐藏,隐藏的目的是强制对变量成员的访问
  要通过成员函数进行。这样做的好处是如果以后修改了成员变量的类
  型等属性,只需修改成员函数即可。否则需要修改所有访问成员变量
  的语句。
  隐藏机制可以避免对对象的不正确操作。
 protected:用来指定保护成员
 
 如果某个成员前面没有访问范围说明符,则对于class默认为私有成员
 

#include <iostream>
#include <cstring>

using namespace std;

class CEmployee{
    private:
        char szName[30];
    public:
        int salary;
        void setName(char *name);
        void getName(char *name);
        void averageSalary(CEmployee e1, CEmployee e2);
};

void CEmployee::setName(char *name){
    strcpy(szName, name);
}

void CEmployee::getName(char *name){
    strcpy(name, szName);
}

void CEmployee::averageSalary(CEmployee e1, CEmployee e2){
    salary = (e1.salary + e2.salary) / 2;
}

int main()
{
    CEmployee e;
    // strcpy(e.szName, "Tom");  error,不能访问私有成员 
    e.setName("Tom");
    e.salary = 50000;
    
    return 0;
}

 


 对象指针->成员名
 
和结构变量一样,对象之间可以使用"="相互赋值,但不能进行比较运算
***********************************************************************/

类的简单说明

标签:对象   init   prot   类成员   logs   ret   nbsp   protected   space   

原文地址:http://www.cnblogs.com/lnlin/p/7501538.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!