#include <iostream>
using namespace::std;
class myPoint {
private://不能被外部函数访问,也不能被继承
int a;
int b;
int*p;
public://既可以访问,也可继承
int c;
protected://不可访问,但可以继承
int d;
protected://成员方法,也有权限,要声明在类里
void func(int a){
};
public:
void func1(int a) {
this->a=a;
};
private:
void func2(int b,int c)
{
this->b=b;
this->c=c;
};
//构造方法,init 对象创建时初始化对象
//和析构方法;delloc 对象销毁时释放对空间
//构造方法一般是共有的,否则不能创建对象
//构造方法的方法名与类名相同,没有返回值
//构造方法可以带参
public:
myPoint(void)
{
};
myPoint(int a,int b)
{
};
//构造方法也可以重载
//如果不写构造函数,系统会自动生成一个没有实现的构造函数
//myPoint(void)
//{};
//如果实现自己创建的构造的方法,系统的方法就没有了
//析构函数,构造函数取反,没有返回值
//public:
~myPoint(void)
{}
;
//栈消失时,会调用,与栈共存亡
};
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
//c++ 允许对象声明在栈里,声明在函数里
myPoint point;
point.func1(3);
//在堆里创建对象,返回地址
myPoint*point2=new myPoint;
//调用带参的构造方法
myPoint *point3=new myPoint(3,4);
delete point3;
//new 是调用构造方法,
//free delete 调用析构方法
//用完之后也要释放,用delete;
delete point2;
return 0;
}
#include <iostream>
using namespace::std;
class myPoint
{
private:
int x;
int y;
public:
//借口和实现的分离
//在类里声明,类外实现
//包括构造方法
myPoint(int xx,int yy);
void show(void);
~myPoint(void);
//内联函数,代码比较小的时候,编译器翻译器翻译成宏,如果代码量比较大的时候,编译器有可能翻译成函数
inline void show1(void);
};
//名字空间 ,名字前面家一个前置,来声明这个方法属于哪一个类的
myPoint::myPoint(int xx,int yy)
{
return;
}
void myPoint:: show(void)
{
return;
}
myPoint::~myPoint(void)
{
return;
}
void swap(int &,int &);
void swap(int &a,int &b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
//声明一个类
myPoint point(10,20);
//方法的调用
point.show();
int a;
a=8;
//关于指针
//指针
int *p=&a;
//引用,给起一个别名,没用任何差别
int &r=a;
r=1;
cout<<a<<endl;
//纪晓岚就是纪云,是一个人
//引用的好处
//比如交换两个数,引用就比指针好用
//引用只能初始化,不能赋值,一旦建立引用,就不能改了
int x=3,y=5;
swap(x, y);
cout<<x<<'\n' <<y<<endl;
return 0;
}
这样对成员函数的实现(即函数的定义)都写在了类体内,因此类的实现部分被省略了。如果成员函数定义在类体外,则在函数头的前面要加上该函数所属类的标识,这时使用作用域运算符::。
定义类时应注意的事项
1、在类体中不允许对所定义的数据成员进行初始化。
2、类中的数据成员的类型可以是任意的,包含整型、浮点型、字符型、数组、指针和引用等。也可以是对象。另一个类的对象,可以作该类的成员,但是自身类的对象是不可以的,而自身类的指针或引用又是可以的。当一个类的对象用为这个类的成员时,如果另一个类的的定义在后,需要提前说明。
3、一般地,在类体内先说明公有成员,它们是用户所关心的,后说明私有成员,它们是用户不感兴趣的。在说明数据成员时,一般按数据成员的类型大小,由小至大说明,这样可提高时空利用率。
4、经常习惯地将类定义的说明部分或者整个定义部分(包含实现部分)放到一个头文件中。