C++中作为类实例的对象
类相当于蓝图,仅声明类并不会对程序的执行产生影响。在程序执行阶段,对象是类的化身。要使用类的功能,通常需要创建其实例—对象,并通过对象访问成员方法和属性。
在C++中。类的对象就是该类的某一特定实体(也称实例)。
声明一个对象的格式:
//和一般变量相同
类名 对象名;Car mycar1;
Car mycar2;
注意,对象所占据的内存空间只是用于存放数据成员,函数成员不在每一个对象中存储副本,每个函数的代码在内存中只占据一份空间。
访问对象的成员
访问数据成员的形式是:对象名.数据成员名
调用函数成员的一般形式是:对象名.函数成员名(参数表)
//访问Car类的对象mycar1的函数成员
mycar1.setID(int ID);
mycar1.getID();
创建 Human 对象与创建其他类型(如 double)的实例类似:
double pi= 3.1415; // a variable of type double
Human firstMan; // firstMan: an object of class Human
就像可以为其他类型(如 int)动态分配内存一样,也可使用 new 为 Human 对象动态地分配内存:
int* pointsToNum = new int; // an integer allocated dynamically
delete pointsToNum; // de-allocating memory when done using
Human* firstWoman = new Human(); // dynamically allocated Human
delete firstWoman; // de-allocating memory
类的实例化按照在分配内存上面的不同大体分为在:栈中的分配内存和堆中的内存的分配,于是分为下面三种方式。
我们只要在test源文件里写入主函数和计算的函数就可以了,我们已经知道了两点之间距离的计算公式,但是根号并不好算,于是我们采用等号两边都取平方的算法,这样快捷方便,并且有效避免了圆心出现负值的情况。
#include<iostream>
using namespace std;
#include"circle.h"
#include"point.h"void isInCircle(Circle& c, Point& p)
{//计算两点之间距离的平方int distance =(c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) +(c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());//计算半径的平方int rDistance =c.getR() * c.getR();//判断关系if (distance == rDistance){cout << "点在圆上" << endl;}else if (distance > rDistance){cout << "点在圆外" << endl;}else{cout << "点在圆内" << endl;}
}### int main(){//创建圆Circle c;c.setR(10);Point center;center.setX(0);center.setY(0);c.setCenter(center);//创建点Point p;p.setX(10);p.setY(0);//判断关系isInCircle(c,p);
}
该文章会更新,欢迎大家批评指正。
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程