C++类与对象笔记一:基本语法、分文件写、访问权限

面向对象的三大特性(不限C++、Python、C#):封装、继承、多态。

面向对象的理念:万物皆对象。一切皆对象。

人可以作为对象,属性有姓名、年龄、身高、体重...,行为有走、跑、跳、吃饭、唱歌...

车也可以作为对象,属性有轮胎、方向盘、车灯...,行为有载人、放音乐、放空调...

具有相同性质对象,我们可以抽象称为,人属于人类,车属于车类。

封装的意义:

  • 将属性和行为作为一个整体,表现生活中的一类事物。计算机语言的一种抽象描述。
  • 将属性和行为加以权限控制。

C++类语法

class 类名
{
访问权限:
    属性;
访问权限:
    行为;
};

//访问权限:三种权限
//公共权限  public     类内可以访问  类外可以访问
//保护权限  protected  类内可以访问  类外不可以访问(子类可继承)
//私有权限  private    类内可以访问  类外不可以访问

class Person {
public:

	//姓名设置可读可写
	void setName(string name) {
		m_Name = name;
	}
	string getName()
	{
		return m_Name;
	}


	//获取年龄 
	int getAge() {
		return m_Age;
	}
	//设置年龄
	void setAge(int age) {
		if (age < 0 || age > 150) {
			cout << "你个老妖精!" << endl;
			return;
		}
		m_Age = age;
	}

	//情人设置为只写
	void setLover(string lover) {
		m_Lover = lover;
	}

private:
	string m_Name; //可读可写  姓名
	
	int m_Age; //只读  年龄

	string m_Lover; //只写  情人
};


int main() {

	Person p;
	//姓名设置
	p.setName("张三");
	cout << "姓名: " << p.getName() << endl;

	//年龄设置
	p.setAge(50);
	cout << "年龄: " << p.getAge() << endl;

	//情人设置
	p.setLover("苍井");
	//cout << "情人: " << p.m_Lover << endl;  //只写属性,不可以读取

	system("pause");

	return 0;
}


 在C++中 structclass唯一的区别就在于 默认的访问权限不同。

  • struct 默认权限为公共。

  • class 默认权限为私有。



分文件

为了方便管理,解决多个类在一个文件中,文件过大问题等问题。类分别写入不同的文件中:

在头文件中建立类的声明文件。其中只包含声明。在源文件中实现所有的声明。具体例子如下:

头文件如下:

#pragma once
#include<iostream>
using namespace std;
#include "Point.h"


class Circle
{
private:
	Point center;
	int R;
public:
	void setCenter(Point point);
	Point getCenter();
	void setR(int r);
	int getR();
};

头文件中写明类名,属性和行为。行为写为声明类型。

如果用到其他类,则把其它类的头文件引入,比如Point.h。

源文件中实现:

#include "Circle.h"
#include "Point.h"



void Circle::setCenter(Point point)    // 双冒号用于标明作用域。
{
	center = point;
}
Point Circle::getCenter()
{
	return center;
}
void Circle::setR(int r)
{
	R = r;
}
int Circle::getR()
{
	return R;
}

双冒号:声明作用域。源文件中全是对声明的实现。即:全是方法/函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值