• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
CharlesNels
博客园    首页    新随笔    联系   管理    订阅  订阅

类

类的声明:
·class Name[:Inheritance List]{
//class body
}; //大括号外要加分号,与java,C#不同

Inheritance List //继承列表 C++支持多重继承,与Java CSharp不同

C++不支持 Point p=new Point(); 这样的写法

class Point{
private : //成员变量,一般为private
int x;
int y;
public :
void Show(){ //成员函数,一般都为public
cout<<x<<endl;
cout<<y<<endl;
}
}

·注意:
·类一定要写在头文件里,通常一个类一个头文件,有时候几个有关系的类放在一个头文件
·头文件一定要写防卫式声明(这样做是为了防止多次定义(引用)) =>:
#ifndef _POINT_H_
#define _POINT_H_
class Point{
...
}
#endif
·接口与实现分离
·注意内联函数

不管一个类的对象有多少个,函数只声明一次内存
每个类的对象内都有一块内存是用来存储这个对象的地址的,称为this指针
-> //指向运算符
Point p;
Point *q;
q=&p;
q->Show(); //这句相当于(*q).Show();也等于p.Show();

屏蔽效应:变量名相同时,取最小作用域的变量

参数和类成员出现名称冲突时记得加this->

·类的构造函数实际上是用来初始化的
-----------------------------------------------------------------------------------------------------------------------------
class with pointer

class MyString{
public :
MyString(char* cstr=nullptr):m_data(cstr){} //构造函数,用cstr初始化m_data,如果不使用有参构造函数,则cstr=nullptr;
private :
char* m_data;
};

 

posted @ 2018-08-29 17:33  CharlesNels  阅读(131)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3