类的简单说明

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

类的定义:
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;
}

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

时间: 2024-07-29 17:53:10

类的简单说明的相关文章

经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后,给出自己的理解和解决方案,不一定是正确的,但这些方法的确可以解决问题. 如果有人遇到同样的问题,并且看到我的文章解决,那是我的荣幸. !!!!!!但特别需要说明的是,看的越多,不明白的越多,我的看法可能是完全错误的,这些方法只是暂时解决了我的问题, !!!!!!如果有人发现了我的错误,请私信或评论告

java中Color类的简单总结

java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 public final static Color black = new Color(0,0,0); public final static Color bule = new Color(0,0,255); . . 有很多这样的常量,可供我们直接类名去调用而不需要去实例化. 3.Color中的构造函数 pu

ffmpeg学习4--ffmpeg类的简单封装,包含解码和定时录像功能

ffmpeg学习4--ffmpeg类的简单封装,包含解码和定时录像功能 参考网上的资料,简单封装了一下ffmpeg,这里记录一下,其它传感器编码及项目中用到的已经抽离,这里只包含解码和录像部分.这只是个玩具级别的测试.完整测试代码下载:代码下载 ffmpegDeCode.h #pragma once #include "stdafx.h" #include<iostream> using namespace std; extern char *VideoPath; exte

C++ MyString类的简单实现

题目:string类的简单实现,本文中此类名为MyString 实现思路: 1 只要构造函数执行成功(其中pData_不为空) 2 构造函数可通过char*,字符串常量构造 3 重载运算符=(返回值为MyString),实现拷贝构造函数(深拷贝,返回值为MyString&) 4 重载运算符<<,使之可通过cout输出 5 实现字符串长度,字符串是否为空函数 6 成员变量使用char* pData_保存字符串,使用int length_保存字符串长度 MyString.h #pragma

java日历类Calendar简单使用

import java.util.Calendar; import java.util.TimeZone; public class Test1 { public static void main(String[] args) { //指定东八区,即北京时间 Calendar cc = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); int year = cc.get(Calendar.YEAR); //月份是从0开始计数的,所

python 元类的简单解释

本文转自博客:http://www.cnblogs.com/piperck/p/5840443.html 作者:piperck python 类和元类(metaclass)的理解和简单运用 (一) python中的类 首先这里讨论的python类,都基于继承于object的新式类进行讨论. 首先在python中,所有东西都是对象.这句话非常重要要理解元类我要重新来理解一下python中的类 class Trick(object): pass 当python在执行带class语句的时候,会初始化一

File类的简单使用

File类: 1.什么是File类? 文件和文件目录的抽象表示 2.用来干什么? 用来对文件或者文件进行简单的读,这里的读是指对文件的属性进行读,获取文件的属性到jvm上面去,可以打印到控制台上. 可以列出一个文件夹中的所有东西,利用方法的迭代还可以列出一个路径下的所有文件. 3.构造方法   File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例.   File(String pathname) 通过

C#中使用UdpClient类进行简单通信的例子

UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两种方法之一来建立默认远程主机: 使用远程主机名和端口号作为参数创建 UdpClient 类的实例. 创建 UdpClient 类的实例,然后调用 Connect 方法. 可以使用在 UdpClient 中提供的任何一种发送方法将数据发送到远程设备. 使用 Receive 方法可以从远程主机接收数据.

DataAccess通用数据库访问类,简单易用,功能强悍

以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展datarow转实体类,也可以搭配dapper.net实现更强大的功能. /// <summary> /// 通用数据库访问类,支持多种数据库,无直接依赖某个数据库组件 /// 作者:左文俊 /// 日期:2016-6-3 /// </summary> public class DataAc

tchar 输入输出类 和 string 类 函数简单说明 总结各种前缀后缀

标准输入输出printf类_tprintf : 类同printf_tprintf_l : 类同printf, 但是"_l"表示第二个参数是一个locale.locale是操作系统对语言设定的参数, 这个会影响ANSI字符的语言识别, 在Unicode下应该是无差别的_tprintf_s : 类图printf, 但是和_tprintf相比, _tprintf_s多会做一些检查工作.如果你的"format string"是动态的, 这个能帮助你._tprintf_s_l