
c++友联函数
下面这段代码是调用了友联函数的代码,我就想知道,怎么在main()函数里面调用这个友联函数,请各位大侠指点指点。#include"stdafx.h"#include<io...
下面这段代码是调用了友联函数的代码,我就想知道,怎么在main()函数里面调用这个友联函数,请各位大侠指点指点。
#include "stdafx.h"
#include <iostream>
#include <string>
class Sales_item{
public:
friend Sales_item add(const Sales_item&, const Sales_item&);
bool same_isbn(const Sales_item &rhs) const
{return isbn == rhs.isbn;}
Sales_item(const std::string &book = ""):isbn(book), units_sold(0), revenue(0.0) {}
Sales_item(std::istream &is)
{
std::cin>>isbn>>units_sold>>revenue;
}
private:
std::string isbn;
unsigned units_sold;
double revenue;
};
Sales_item add(const Sales_item &obj1, const Sales_item &obj2)
{
if(!obj1.same_isbn(obj2))
return obj1;
Sales_item temp;
temp.isbn = obj1.isbn;
temp.units_sold = obj1.units_sold + obj2.units_sold;
temp.revenue = obj1.revenue + obj2.units_sold;
return temp;
}
void main()
{
}
应该是这样写吧?
Sales_item a,b;
add(a,b); 展开
#include "stdafx.h"
#include <iostream>
#include <string>
class Sales_item{
public:
friend Sales_item add(const Sales_item&, const Sales_item&);
bool same_isbn(const Sales_item &rhs) const
{return isbn == rhs.isbn;}
Sales_item(const std::string &book = ""):isbn(book), units_sold(0), revenue(0.0) {}
Sales_item(std::istream &is)
{
std::cin>>isbn>>units_sold>>revenue;
}
private:
std::string isbn;
unsigned units_sold;
double revenue;
};
Sales_item add(const Sales_item &obj1, const Sales_item &obj2)
{
if(!obj1.same_isbn(obj2))
return obj1;
Sales_item temp;
temp.isbn = obj1.isbn;
temp.units_sold = obj1.units_sold + obj2.units_sold;
temp.revenue = obj1.revenue + obj2.units_sold;
return temp;
}
void main()
{
}
应该是这样写吧?
Sales_item a,b;
add(a,b); 展开
2个回答
展开全部
在访问友元函数时只须首先声明一下该函数就可以访问了。举例说明吧
class A{
public:
friend void f(){cout<<"f"<<endl;}
};
main()
{void f(); //在使用友元函数之前先声明一下,如果在全局声明就能在全局
访问,如果在局部声明就只能在局部访问
f(); //直接调用友元函数。因为友元函数不是类的成员。
}
class A{
public:
friend void f(){cout<<"f"<<endl;}
};
main()
{void f(); //在使用友元函数之前先声明一下,如果在全局声明就能在全局
访问,如果在局部声明就只能在局部访问
f(); //直接调用友元函数。因为友元函数不是类的成员。
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询