- 类与对象
- 怎么将自己写的类与main分开(做成源文件和头文件)
1 #include <iostream> 2 using namespace std; 3 4 //C++面向对象的三大特性为:封装、继承、多态 5 /*封装 6 将属性和行为作为一个整体,表现生活中的事物 7 将属性和行为加以权限控制 8 9 语法: class 类名{访问权限:属性/行为}; 10 类中的属性和行为我们统一称为成员 11 属性 成员属性 成员变量 12 行为 成员函数 成员方法 13 */ 14 const double PI=3.14; 15 class Circle 16 { 17 //访问权限 18 public: 19 //属性 20 int m_r; 21 //行为 22 //获取圆的周长 23 double calculateZC() 24 { 25 return 2*PI*m_r; 26 } 27 }; 28 29 class Student 30 { 31 public: 32 string s_name; 33 string s_id; 34 35 void setName(string name) 36 { 37 s_name=name; 38 } 39 void setId(string id) 40 { 41 s_id=id; 42 } 43 void showInfo() 44 { 45 cout<<"姓名:"<<s_name<<endl; 46 cout<<"学号:"<<s_id<<endl; 47 } 48 }; 49 50 /*类在设计时,可以把属性和行为放在不同的权限下,加以控制 51 public 公共权限 成员在类内外都可以访问 52 protected 保护权限 成员类内可以访问,类外不可以 子类可以访问 53 private 私有权限 成员类内可以访问,类外不可以 子类不可以访问 54 */ 55 56 class Person 57 { 58 public: 59 //公共权限 60 string m_Name;//姓名 61 protected: 62 //保护权限 63 string m_Car;//汽车 64 private: 65 //私有权限 66 int m_Password;//银行卡密码 67 }; 68 69 70 /*struct和class区别 71 struct默认权限为公共 public 72 class 默认权限为私有 private 73 有人说class 是struct的推广 74 ”C++语法比C新增struct里面可以写函数“--c与C++中struct的的区别 75 */ 76 77 /*成员属性设置为私有 78 优点:1、将所有成员属性设置为私有,可以自己掌控读写权限 79 2、对于写权限,我们可以检测数据的有效性(可以加判断条件) 80 81 */ 82 83 int main() 84 { 85 //通过圆类创建具体的圆(对象) 86 //实例化 通过一个类创建一个对象的过程 87 Circle c1; 88 //给圆对象的属性进行赋值 89 c1.m_r=10; 90 cout<<"圆c1的周长:"<<c1.calculateZC()<<endl; 91 92 Student s1; 93 Student s2; 94 s1.s_name="张三"; 95 s1.s_id="123456"; 96 s1.showInfo(); 97 s2.setName("李四"); 98 s2.setId("234567"); 99 s2.showInfo(); 100 system("pause"); 101 return 0; 102 }
两种防止重复的写法
1 //方法1 可跨平台 2 #ifndef __SOMEFILE_H__ 3 #define 4 5 #endif 6 //方法2 不可跨平台 7 #pragma once
头文件只需声明不用实现‘
1 #ifndef __CIRCLE_H__ 2 #define 3 #include <iostream> 4 #include "point.h" 5 using namespace std; 6 7 class Circle 8 { 9 public: 10 //设置半径 11 void setR(int r); 12 //获取半径 13 int getR(); 14 //设置圆心 15 void setCenter(Point center); 16 //获取圆心 17 Point getCenter(); 18 private: 19 int m_R; 20 Point m_Center;//圆心 21 }; 22 23 #endif
源文件要写好作用域,不用写类名与访问权限
1 #include "circle.h" 2 3 //设置半径 4 void Circle::setR(int r){m_R=r;} 5 //获取半径 6 int Circle::getR(){return m_R;} 7 //设置圆心 8 void Circle::setCenter(Point center) 9 { 10 m_Center=center; 11 } 12 //获取圆心 13 Point Circle::getCenter() 14 { 15 return m_Center; 16 }
标签:,Point,int,void,圆心,Circle,属性 From: https://www.cnblogs.com/hwq123/p/17675612.html