首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

友元函数的有关问题

2012-09-22 
友元函数的问题我运行下面的代码,提示c:\users\002546\documents\visual studio 2012\projects\consoleapp

友元函数的问题
我运行下面的代码,提示
c:\users\002546\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(33): error C2248: “A::m_ia”: 无法访问 private 成员(在“A”类中声明)
1> c:\users\002546\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(27) : 参见“A::m_ia”的声明
1> c:\users\002546\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp(8) : 参见“A”的声明


有点不明白了,请大侠帮忙啊!
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

C/C++ code
#include <stdlib.h>#include <iostream>using namespace std;#include "stdafx.h"class A{    public:    A()    {        m_ia = 0;        printf("A()\n");    }    A& operator=(const A &a)    {        printf("=\n");        //    return 0x00;    }    friend void dispaly1(A&a1);private:    int m_ia;};void display1(A a1){    //printf("\n%d\n",a.m_ia);    cout << a1.m_ia << endl;}int main(void){    A a;    A b;    a = b;    display1(b);    getchar();    return 0;}


[解决办法]
两个问题。
1、类中的display拼错了。。。
2、声明里形参是引用,定义的地方形参也要写成引用,否则就变成了函数重载。
[解决办法]
friend void dispaly1(A&a1);
private:
int m_ia;
};

void display1(A a1)

热点排行