friend之友元函数和友元类
来源:互联网 发布:天刀数据加载失败 编辑:程序博客网 时间:2024/05/21 14:54
// friend_func.cpp : Defines the entry point for the console application.////写一个函数求两个点的中点//友元函数可以访问类的私有成员,但友元函数不是类的成员函数/*#include "stdafx.h"#include <iostream>#include<stdlib.h>using namespace std;class Point{friend Point middle(const Point& p1, const Point &p2);public:Point(float a,float b);~Point();void print(){cout << "x= " << x << ", y= " << y << endl;}float get_X(){return x;}float get_Y(){return y;}private:float x, y;};Point::Point(float a, float b):x(a),y(b){}Point::~Point(){}Point middle(const Point& p1, const Point &p2){Point mid_point((p1.x + p2.x) / 2, (p1.y+ p2.y) / 2);//访问私有成员,不被允许return mid_point;}int main(){Point p(1, 3);Point q(1, 5);middle(p, q).print();system("pause"); return 0;}*///友元类#include "stdafx.h"#include <iostream>#include<stdlib.h>using namespace std;class Circle;//前向声明,表示有一个类为Circle,但此时编译器并不知道该类的具体声明和实现class Point{public:Point();Point(float a, float b);~Point(); void print()const;friend class Circle;//声明友元类,Circle类中的所有函数均可以访问私有变量x,y//友元函数不受访问属性限制,因此无论放在public和private中均可以friend const Point middle(const Point& u, const Point& v);//声明友元函数private:float x, y;};Point::Point() :x(0), y(0){cout << "Default Constructor is called!";}Point::Point(float a, float b) :x(a), y(b){}Point::~Point(){}//middle是友元函数,不是成员函数const Point middle(const Point& u, const Point& v){Point mid_point((u.x+v.x)/2.0,(u.y+v.y)/2.0);return mid_point;}void Point::print()const{cout << "(" << x << " , " << y <<")"<< endl;}//###############################################################class Circle{public:Circle();~Circle();Circle& move(float a, float b);void print() const ;private:float radius;Point center;};Circle::Circle():radius(0.0f){center.x = 0.0f;center.y = 0.0f;}Circle::~Circle(){}Circle& Circle::move(float a, float b){center.x += a;center.y += b;return *this;}void Circle::print()const{center.print();//打印圆心,Center是point类cout << "radius = " << radius << endl;}int main(){Point p1(1.0, 2.0);Point p2(3.0, 4.0);cout << "第一个点:";p1.print();cout << "第二个点:";p2.print();cout << "两个点的中点是:";middle(p1, p2).print();Circle c;c.print();cout << "移动圆心: ";c.move(10.0, 10.0);c.print();system("pause");return 0;}
0 0
- friend之友元函数和友元类
- C++之friend友元类和友元函数
- C++之友元函数friend
- friend 友元函数
- 友元函数(friend)
- 友元函数 friend
- 友元函数friend
- 友元类 (Friend classes)-友元函数(Friend functions)
- [C++]friend友元类-友元函数
- C++:友元函数friend
- Friend 非成员函数声明为友元 【C++ friend】
- C++ 友元函数(Friend)
- friend访问类型(友元函数)
- friend 友元函数(C++语言)
- C++类的友元函数friend
- C++友元函数神奇的friend
- C++读书笔记之友元 friend
- C++基础之友元friend
- 电商和电信之间的区别,浅谈。
- FloodFill算法
- 如何禁止SQL Server服务自启并创建快捷方式以手动启动
- React学习之扩展浅比较(三十四)
- 三国佚事——巴蜀之危
- friend之友元函数和友元类
- node.js 使用第三方模块formidable实现文件上传并修改文件名
- NYOJ 412 Same binary weight
- 用STM32自制APM四轴飞行器
- 细说JDK动态代理的实现原理
- 城市问题
- 两种方法求解 Reversing Linked List
- 小米手机编译程序出错
- Android中如何编写图片选择器,实现按点击按钮时按钮的图片或者颜色发生变化