类的运用

定义类、还有构造函数、析构函数,友元函数、友元类,之后运用类
类是没有内存分配的。
根据访问权限可以分为:private和public,还有不经常用的protected
根据类内的成员性质不同可以分为:数据成员,即描述成员属性;成员函数,即描述类的对象的行为和属性操作。

一、定义类

类头文件定义 标准格式
#ifndef 类名称
#define 类名称

#endif
之后会举例完整的代码,去把整个过程顺一下。

二、构造函数、析构函数

1、构造函数可以通过调用共有的构造函数来修改私有成员函数的赋值
2、通过(公有的)类的带参构造函数来初始化类对象的数据成员
一般的构造函数好像都会定义为公有的,私有的不经常用。
3、析构函数就是销毁之前调用的函数。

三、运算符重载

函数重载的一种,是因为普通的运算符无法运用在类对象之间,所以需要用特定的运算符重载函数来执行类对象之间的操作。
先来了解一下通常运算符内部是怎么操作的。
int a=10;
int b=20;
x=a+b;
return x;
这里是在a上加上b,赋值给x,作为两者相加的结果返回。更通俗的说就是一杯水倒入另一杯水里,可以理解为最后的结果是被重新命名为x。因此伪代码为: a.operator+(b);
所以+的重载的模板:
返回值 operator+(右操作符)
其它运算符以此类推。

四、友元函数、友元类

友元函数能够像类成员函数一样,访问类的所有数据成员和成员函数。
友元类定义的方法和友元函数差不多,不过要注意的是在哪个类里定义的友元类,则该友元类为那个类的友元类,但是不一定关系是相互的,所以定义是单向的。
定义类、实用类对象
内容:
先定义一个类,此名称叫MyVector
构建函数:含参函数和无参数函数
运算符重载的定义与使用
友元函数的定义和使用:使用友元来定义输出对象COUT的输出函数,使之能输出自定义的MyVector向量类对象。
步骤:
创建空项目。为空项目创建MyVector类的类定义文件头文件“MyVector.h”,类实现的源文件“MyVector.cpp”。
创建客户源程序“main.cpp”,并编写main()函数来使用MyVector类。

以下为代码文件内容

MyVector.h
定义类、还有构造函数、析构函数,友元函数、友元类,之后运用类
类是没有内存分配的。
根据访问权限可以分为:private和public,还有不经常用的protected
根据类内的成员性质不同可以分为:数据成员,即描述成员属性;成员函数,即描述类的对象的行为和属性操作。
一、定义类
类头文件定义 标准格式
#ifndef 类名称
#define 类名称

#endif
之后会举例完整的代码,去把整个过程顺一下。
二、构造函数、析构函数
1、构造函数可以通过调用共有的构造函数来修改私有成员函数的赋值
2、通过(公有的)类的带参构造函数来初始化类对象的数据成员
一般的构造函数好像都会定义为公有的,私有的不经常用。
3、析构函数就是销毁之前调用的函数。
三、运算符重载
函数重载的一种,是因为普通的运算符无法运用在类对象之间,所以需要用特定的运算符重载函数来执行类对象之间的操作。
先来了解一下通常运算符内部是怎么操作的。
int a=10;
int b=20;
x=a+b;
return x;
这里是在a上加上b,赋值给x,作为两者相加的结果返回。更通俗的说就是一杯水倒入另一杯水里,可以理解为最后的结果是被重新命名为x。因此伪代码为: a.operator+(b);
所以+的重载的模板:
返回值 operator+(右操作符)
其它运算符以此类推。
四、友元函数、友元类
友元函数能够像类成员函数一样,访问类的所有数据成员和成员函数。
友元类定义的方法和友元函数差不多,不过要注意的是在哪个类里定义的友元类,则该友元类为那个类的友元类,但是不一定关系是相互的,所以定义是单向的。
定义类、实用类对象
内容:
先定义一个类,此名称叫MyVector
构建函数:含参函数和无参数函数
运算符重载的定义与使用
友元函数的定义和使用:使用友元来定义输出对象COUT的输出函数,使之能输出自定义的MyVector向量类对象。
步骤:
创建空项目。为空项目创建MyVector类的类定义文件头文件“MyVector.h”,类实现的源文件“MyVector.cpp”。
创建客户源程序“main.cpp”,并编写main()函数来使用MyVector类。

以下为代码文件内容
1、MyVector.h
定义类、还有构造函数、析构函数,友元函数、友元类,之后运用类
类是没有内存分配的。
根据访问权限可以分为:private和public,还有不经常用的protected
根据类内的成员性质不同可以分为:数据成员,即描述成员属性;成员函数,即描述类的对象的行为和属性操作。
一、定义类
类头文件定义 标准格式
#ifndef 类名称
#define 类名称

#endif
之后会举例完整的代码,去把整个过程顺一下。
二、构造函数、析构函数
1、构造函数可以通过调用共有的构造函数来修改私有成员函数的赋值
2、通过(公有的)类的带参构造函数来初始化类对象的数据成员
一般的构造函数好像都会定义为公有的,私有的不经常用。
3、析构函数就是销毁之前调用的函数。
三、运算符重载
函数重载的一种,是因为普通的运算符无法运用在类对象之间,所以需要用特定的运算符重载函数来执行类对象之间的操作。
先来了解一下通常运算符内部是怎么操作的。
int a=10;
int b=20;
x=a+b;
return x;
这里是在a上加上b,赋值给x,作为两者相加的结果返回。更通俗的说就是一杯水倒入另一杯水里,可以理解为最后的结果是被重新命名为x。因此伪代码为: a.operator+(b);
所以+的重载的模板:
返回值 operator+(右操作符)
其它运算符以此类推。
四、友元函数、友元类
友元函数能够像类成员函数一样,访问类的所有数据成员和成员函数。
友元类定义的方法和友元函数差不多,不过要注意的是在哪个类里定义的友元类,则该友元类为那个类的友元类,但是不一定关系是相互的,所以定义是单向的。
定义类、实用类对象
内容:
先定义一个类,此名称叫MyVector
构建函数:含参函数和无参数函数
运算符重载的定义与使用
友元函数的定义和使用:使用友元来定义输出对象COUT的输出函数,使之能输出自定义的MyVector向量类对象。
步骤:
创建空项目。为空项目创建MyVector类的类定义文件头文件“MyVector.h”,类实现的源文件“MyVector.cpp”。
创建客户源程序“main.cpp”,并编写main()函数来使用MyVector类。

以下为代码文件内容
1、MyVector.h

#define _VECTOR_H_
#include
#include
class MyVector //定义MyVector三维向量类 
{
private:
int x;
int y;
int z;
public:
myVector();
~myVector();
myVector(int X,int Y,int Z);
myVector operator+(myVector v);
myVector operator-(myVector v);
friend ostream& operator<<(ostream& out,myVector v);
};
#endif

2、MyVector.cpp

MyVector myVector() //不带参数的构造函数 
{
x=0;
y=0;
z=0;'
}
MyVector myVector(int X,int Y,int Z)
{
x=X;
y=Y;
z=Z;
}
MyVector myVector operator+(myVector& v)
{
myVector temp;
temp.x=this->x+v.x;
temp.y=this->y+v.y;
temp.z=this->z+v.z;
return temp;
}
MyVector myVector operator-(myVector& v)
{
myVector temp;
temp.x=this->x-v.x;
temp.y=this->y-v.y;
temp.z=this->z-v.z;
return temp;
}
std ostream& operator<<(std ostream& out,myVector v)
{
out<<"("<<v.x<<","<<v.y<<","<<v.z<<")"<<std endl;
return out;
}

3、main.cpp

#include"myVector.h"
using namespace std;
int main()
{
myVector Vec1(1,3,4);
myVector Vec2(2,4,5);
myVector Vec3;
cout<<"Vec1:"<<Vec1<<endl;
cout<<"Vec2:"<<Vec2<<endl;
Vec3=Vec1+Vec2;
cout<<"Vec1与Vec2之和为:"<<Vec3<<endl;
Vec3=Vec2-Vec1;
cout<<"Vec2与Vec1之差为:"<<Vec3<<endl;
cin.get();
return 0; 
}#ifndef _VECTOR_H_
#define _VECTOR_H_
#include
#include
class MyVector //定义MyVector三维向量类 
{
private:
int x;
int y;
int z;
public:
myVector();
~myVector();
myVector(int X,int Y,int Z);
myVector operator+(myVector v);
myVector operator-(myVector v);
friend ostream& operator<<(ostream& out,myVector v);
};
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值