cpp2.1面向对象程序设计基础

oo基本知识

1.类的声明,头文件,源文件

1.1头文件(.h):

  • 写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。在写头文件时,在开头和结尾处必须加上预编译语句,但一般ide会自动帮你写好。
#ifndef CIRCLE_H
#define CIRCLE_H

//定义,声明等

#endif
  • 头文件举例:
class Circle{
private:
    double r;//半径
public:
    Circle();//构造函数
    Circle(double R);//构造函数
    double Area();//求面积函数
};
//如果在头文件中写了具体函数体,则为inline

1.2 源文件(.cpp):

  • 写实现头文件中已经声明的那些函数的具体代码。
  • 需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。
  • 源文件举例:
#include "Circle.h"
//注意名空间
Circle::Circle(){
    this->r=5.0;
}

Circle::Circle(double R){
    this->r=R;
}

double Circle:: Area(){
    return 3.14*r*r;
}

  • 开头处包含了Circle.h,事实上,只要此cpp文件用到的文件,都要包含进来!这个文件的名字其实不一定要叫Circle.cpp,但非常建议cpp文件与头文件相对应。

1.3协同

  • 在main.cpp中,只需要include头文件即可使用相应的类。
  • main.cpp举例:
#include <iostream>
#include "Circle.h"
using namespace std;
int main(){
    Circle c(3);
    cout<<"Area="<<c.Area()<<endl;
    return 0;
}

2.对象的创建

  • Struct 和class的本质差别:struct默认权限是public,class默认权限是private
TDate g;//存在全局静态存储区
//这个对象已经调用了构造函数,已经初始化好了
int main(){ 
	g.SetDate(2000,1,1); 
	TDate t;(存在栈中)
	t.SetDate(2015,11,17); 
	TDate *p = new TDate; (堆中) 
	p->SetDate(2015,11,17);
}
TDate g=TDate();//调用构造方法初始化对象
  • 对应三种存储方式:全局静态区,栈区,堆区。
  • 对应两种声明方式:非指针,指针。非指针用.来访问,指针用箭头。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值