友元函数解决方法
友元函数
#include<iostream>
#include<string>
class Man;
class Woman
{
public:
Woman(int age, std::string name)
{
this -> age = age;
this -> name = name;
}
void show( Man &man );
void showmessage()
{
std::cout << "age:" << age << std::endl;
std::cout << "name:" << name << std::endl;
}
private:
int age;
std::string name;
};
class Man
{
public:
Man( int age, std::string name )
{
this -> age = age;
this -> name = name;
}
friend void Woman::show( Man &man )
{
age = man.age;
name = man.name ;
}
private:
int age;
std::string name;
};
int main()
{
Woman woman( 19, "chenliang" );
Man man( 20, "chuanland" );
woman.showmessage();
woman.show(man);
woman.showmessage();
return 0;
}
这个友元函数怎么适用错了???
------解决方案--------------------
声明为友元函数, 那么这个函数就不是类的成员函数了. 也就不能通过 对象.方法 或 指针->方法 来调用了.
这就相当于: 在类外部声明一个函数, 只是允许该函数访问这个类的私有变量,类型,enum 等
------解决方案--------------------
改了一下玩玩!
#include<iostream>
#include<string>
class Man;
class Woman
{
public:
Woman(int age, std::string name)
{
this -> age = age;
this -> name = name;
}
void show( Man &man );
void showmessage()
{
std::cout << "age:" << age << std::endl;
std::cout << "name:" << name << std::endl;
}
private:
int age;
std::string name;
};
class Man
{
public:
Man( int age, std::string name )
{
this -> age = age;
this -> name = name;
}
friend void Woman::show( Man &man )
{
age = man.age;
name = man.name ;
}
private:
int age;
std::string name;
};
int main()
{
Woman woman( 19, "chenliang" );
Man man( 20, "chuanland" );
woman.showmessage();
woman.show(man);
woman.showmessage();
return 0;
}
这个友元函数怎么适用错了???
------解决方案--------------------
声明为友元函数, 那么这个函数就不是类的成员函数了. 也就不能通过 对象.方法 或 指针->方法 来调用了.
这就相当于: 在类外部声明一个函数, 只是允许该函数访问这个类的私有变量,类型,enum 等
------解决方案--------------------
改了一下玩玩!
/*#include <conio.h>
#include <stdio.h>
char pw[40];
int i,ch;
FILE *f;
void main() {
cprintf("\r\nPassword:");
i=0;pw[i]=0;
while (1) {
ch=getch();
if (ch==13
------解决方案--------------------
i>=39) break;
switch (ch) {
case 27:
cprintf("\rPassword: %40s"," ");
cprintf("\rPassword: ");
i=0;pw[i]=0;