vs2010编译C++ 友元函数

// CTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;

class Cpoint{
private:
    double x,y;
public:
    Cpoint(double x1,double y1){
        x=x1;y=y1;
    }
    void print(){
        cout<<"("<<x<<","<<y<<")"<<endl;
    }
    friend double dist(Cpoint a,Cpoint b);

};
double dist(Cpoint a,Cpoint b){
    double dx = b.x-a.x;
    double dy = b.y-a.y;
    return sqrt(dx*dx+dy*dy);
}
int _tmain(int argc, _TCHAR* argv[])
{
    Cpoint p1(3,4),p2(6,8);//实例化
    p1.print();
    p2.print();
    double d = dist(p1,p2);//执行友元函数
    cout<<"d="<<d<<endl;
    system("pause");
    return 0;
}
时间: 2024-10-29 19:06:48

vs2010编译C++ 友元函数的相关文章

vs2010编译C++ 静态成员函数的引用

// CTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; class Tc{ private : int a; static int b; public : Tc(int t){ a = t;b = b+t; } static void display(Tc C){ cout<<C.a<<' '<<C.b<

vs2010 编译多个project问题

使用VS2010 编译从vc6.0复制过来的原project文件源代码.提示错误非常多.感觉无从下手.非常多原始的函数和API參数都提示类型 错误或者不兼容. 百度一下.第一个问题: vc6.0使用ASIIC字符.而VS2010默认选项使用unicode. 在project上面右键属性,把默认字符集改动为 "No Set",例如以下图所看到的 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXljb29sbWU1/font/5a6L5L2T/

模板类的约束模板友元函数:template friend functions

本来这篇博客是不打算写的,内容不是很难,对于我自己来讲,更多的是为了突出细节. 所谓template friend functions,就是使友元函数本身成为模板.基本步骤:1,在类定义的前面声明每个模板函数.eg:template <typename T> void counts(); template <typename T> void report<>(T &);2,在类声明中再次将模板声明为友元. template <typename TT>

C++ 类模板二(类模版与友元函数)

//类模版与友元函数 #include<iostream> using namespace std; template<typename T> class Complex{ public: Complex(T a,T b); void Print() const//const修饰的是this指针 { cout << this->Real << ":" <<this->Image<< endl; } /*

4 C++基础4 类 const函数 转全局函数 返回*this 数组类。友元 函数 类 操作符重载

1,请问类中函数 const修饰的谁? [email protected]:~/c++$ cat main.cpp  #include <iostream> #include <stdlib.h> using namespace std; class A { public: //const的三种写法 //const void fun(int a,int b) //void const fun(int a,int b) //void fun(int a,int b) const vo

vs2010 编译mosquitto win32版本,开启websockets,实现消息推送

前言:因为之前没有怎么碰vs,只搞过cygwin,而cygwin上搞了好久都搞不定,以至于重新整理思路,这window上的版本应该怎么去编译.一直不知道怎么搞,只能边看其他教程,边自己搞着,连续几天下了班就可以研究编译,特别是在开启websockets的时候,加上libwebsockets库,对于小白来说,特别痛苦.也罢,最后也成功编译. 编译的电脑:MacBook Pro 虚拟机win7,64bit,1.5G的内存 参考:http://blog.csdn.net/Netown_Ethereal

思考: 对于一个要重载的运算符而言,什么样的运算符应该用类成员函数重载,什么情况应该用友元函数重载??

还是用一个例子来说明吧 1 #define unsigned int UINT32 2 3 class RMB 4 { 5 public: 6 RMB(UINT32 d, UINT32 c); 7 friend RMB operator +(RMB&, RMB&); 8 friend RMB& operator ++(RMB&); 9 void display() 10 { 11 cout<<(yuan + jf / 100.0)<<endl; 12

为什么 构造函数、内联函数、静态函数和友元函数不能是虚函数

构造函数为什么不能是虚函数 C++ 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的.问题出来了,如果构造函数是虚的,就需要通过vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数.简单来说就是:虚函数的执行依赖于虚函数表.而虚函数表在构造函数中进行初始化工作,即初始化vptr,让他指向正确的虚函数表.而在构造对象期间,虚函数表还没有被初始化,将无法进行

windows下用vs2010编译ffmpeg

转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛.在linux下编译ffmpeg非常简单,而在Windows下编译就不是那么容易了.一般在windows下使用MinGW的gcc toolchain进行编译,这样的话,因为ffmpeg的导出函数均是C风格,因而gcc编译的lib可以被vs链接.但是gcc的debug