PDA

View Full Version : سوال: نحوه ی تعریف شی در کلاس که همه تابع های کلاس دیگر به ان دسترسی داشته باشن؟



hafez1
چهارشنبه 14 مرداد 1394, 18:39 عصر
با سلام وخسته نباشید
ی برناه نوشتم که چنتا کلاس داره و هر کدام چنتا تابع. یک شی بعد از( h.) هر کلاس تعریف کردم و در تابع های کلاس های دیگر از اون استفاده کردم. ولی ارور زیر را میدهد. اگر کمکم کنید ممنون میشم.

133953
#include<iostream>
#include "Server.h"
using namespace std;
void main()
{
int c=1;
server.server1(c);
}

//////////////////h.
#pragma once
class Server
{
unsigned int k1,k2,pid2,pid1;
public:

Server(void);
~Server(void);
void serveri(unsigned int,unsigned int);
void server1(int);
void server(int , unsigned int );
void server2(int, unsigned int, unsigned int);
}server;

//////////////////////cpp.
#include "Server.h"
#include "Reader.h"
#include "Tag.h"
#include<iostream>
using namespace std;

Server::Server(void)
{
}
Server::~Server(void)
{
}
void Server:: serveri(unsigned int k11,unsigned int k22)
{
k1=k11;
k2=k22;

}
void Server::server1(int c)
{

if(c==1)
{
int h=1;
reader.reader(h);
}
else
cout<<" shenase moetabar nist! "<<endl;


}

void Server:: server(int r, unsigned int pid22)
{

if(r==1)
{
pid2=pid22;
reader.reader2(k1,k2);
}
else
cout<<"reader mojaz nist";
}
void Server:: server2(int c, unsigned int pid11, unsigned int pid22)
{
if(c==1)
{

pid1=pid11;
pid2=pid22;

}
}
///////////////////////////h.
#pragma once
class Reader
{
int C;
unsigned int pid2,pid1;
unsigned int n1,n2,A,B,D,f1,k1,k2,id;
public:

Reader(void);
~Reader(void);
void reader(int);
void reader1 (unsigned int );
void reader2 (unsigned int ,unsigned int );
void reader3(unsigned int , unsigned int );
}reader;

////////////cpp.
#include "Reader.h"
#include "Server.h"
#include "Tag.h"
//#include "Tango.h"
#include "stdlib.h"
#include<iostream>
using namespace std;


Reader::Reader(void)
{
//C=1;
}


Reader::~Reader(void)
{
}
void Reader::reader(int r)
{
tag.tag1(r);

}
void Reader::reader1(unsigned int pid22)
{
pid2=pid22;

server.server(1,pid2);
}
void Reader:: reader2 (unsigned int k11,unsigned int k22)
{

k1=k11;
k2=k22;

n1= rand()%255+1;
cout<<"n1"<<n1<<endl;

n2= rand() %255+1;
cout<<"n2"<<n2<<endl;

A= (((pid2 & k1) & k2)^n1);
B= (((~pid2& k2) & k1) ^ n2);
D= ((k1 & n2) ^ (k2 & n1));
cout<<"A=="<<A<<" "<<"B=="<<B<<" "<<"D=="<<D<<endl;

tag.tag2(A,B,D);
}

void Reader::reader3(unsigned int E, unsigned int F)
{

f1 =(k1& n1) ^ (k2 & n2);


if( f1== F)
{

id= E ^ (((k2 & n2) ^ k1) ^ n1);
pid1= pid2;
pid2= (pid2 ^ n1) ^ n2;

}

server.server2(1,pid1,pid2);
}
/////////////////////h.
#pragma once
class Tag
{

unsigned int pid1;
unsigned int pid2, k1,k2, id;
unsigned int n1,n2,d,E,F;
public:

Tag(void);
~Tag(void);
void tag2(unsigned int,unsigned int ,unsigned int );
void tag1 (int );
void tag3 (unsigned int , unsigned int);
// void tagi();
}tag;

////////////////cpp.
#include "Tag.h"
#include "Reader.h"
#include "Tango.h"
#include "Server.h"
#include<iostream>
using namespace std;


Tag::Tag(void)
{

}


Tag::~Tag(void)
{
}
void Tag:: tag1(int c )
{
if(c==1){
cout<<"meghdare id ra vared konid";
cin>>id;
cout<<"meghdare pid1 ra vared konid";
cin>>pid1;
cout<<"meghdare pid2 ra vared konid";
cin>>pid2;
cout<<"meghdare k1 ra vared konid";
cin>>k1;
cout<<"meghdare k2 ra vared konid";
cin>>k2;

server.serveri(k1,k2);


reader.reader1(pid2);
}
else
cout<<"reader mojaz nist";


}
void Tag:: tag3(unsigned int k11, unsigned int k22)
{

k1=k11;
k2=k22;

}


void Tag:: tag2(unsigned int A ,unsigned int B, unsigned int D)
{


n1=( A ^ ((pid2& k1) & k2));
n2= (B ^ ((~pid2 & k2) & k1));
d= ((k1 & n2)^ (k2 & n1));
cout<<"n1="<<n1<<" "<<"n2="<<n2<<" "<<"d="<<d<<endl;

if(d==D)
{
E=((k1 ^ n1 )^ id)^ (k2 & n2);
F= (k1& n1) ^ (k2& n2);
cout<<"E="<<E<<" "<<"F="<<F<<endl;
}



tango.tango3(A,B,D,E,F);

reader.reader3(E,F);
// Tango tan;
// tan.tango3(A,B,D,E,F);

pid1=pid2;

pid2=((pid2 ^ n1) ^ n2);


}
////////////

pswin.pooya
جمعه 16 مرداد 1394, 22:32 عصر
نحوه ی تعریف شی در کلاس که همه تابع های کلاس دیگر به ان دسترسی داشته باشن؟

بصورت public تعریف کنید. البته اینکار با اصول شی گرایی در تضاد هست اما خب یه برنامه نویس خوب برنامه نویسی هست که خودش اصول خودش رو داشته باشه و در مورد اون تصمیم بگیره.