现在的三角形Triangle还比较简单,只有三个点(private)nodei_,nodej_,nodem_。功能也仅仅是初始化三个点init(),打印三角形三个点坐标print()。
首先是Node类,定义在“Node.h”中,如下:
class Node { private: double x_; //点的横坐标 double y_; //点的纵坐标 public: Node(); //构造函数x_=0,y_=0; void init(void); //初始化函数,键盘输入横纵坐标 void print(void); //打印坐标 }; /****************************************/ Node::Node() { x_=0; //初始化 y_=0; //std::cout<<"Node初始化..."<<std::endl; } /****************************************/ void Node::init(void) //键盘读入坐标 { double x,y; std::cout<<"节点坐标:x y="; std::cin>>x>>y; x_=x; //将x赋给private定义的x_,y_ y_=y; } /****************************************/ void Node::print(void) { std::cout<<x_<<" "<<y_<<std::endl; }
接下来是Triangle类,定义在"Triangle.h"中,如下:
/**************三角形类******************/ class Triangle { private: Node nodei_; //三个点 Node nodej_; Node nodem_; public: Triangle(); //构造函数 void init(void); //初始化函数,键盘读入三个点坐标 void print(void); //打印三个点的坐标 }; /****************************************/ Triangle::Triangle() { /************************** nodei_.x_=1; nodei_.y_=1; nodej_.x_=2; nodej_.y_=2; nodem_.x_=3; nodem_.y_=3; **************************/ std::cout<<"Triangle初始化..."<<std::endl; } /****************************************/ void Triangle::init() { Node nodei,nodej,nodem; nodei.init(); //调用Node类的成员函数init()进行初始化 nodej.init(); nodem.init(); nodei_=nodei; //将初始化后的点赋给三角形的private点 nodej_=nodej; nodem_=nodem; } /****************************************/ void Triangle::print() { std::cout<<"Triangle:"<<std::endl; nodei_.print(); //调用Node类的成员函数print()进行输出 nodej_.print(); nodem_.print(); }
最后是调试的主函数,在“测试.cpp“中:
#include<iostream> #include"Node.h" #include"Triangle.h" void main() { using namespace std; //定义命名空间 Node *p; //定义指向节点首地址的指针 Node a[3]; //定义Node类数组 p=a; //将Node类数组的首地址赋给指针p for(int i=0;i<3;i++) (*(p+i)).print(); //输出Node数组a[]; Triangle tri; //定义三角形tri tri.init(); //初始化三角形 cout<<"显示Triangle的信息:"<<endl; tri.print(); //输出三角形tri信息 }
运行起来,如下图:
目前Node类和Triangle类还很简单,慢慢增强,学习指针等用法。
原文:http://www.cnblogs.com/mt-luo/p/4154231.html