Boas venho por aqui varis exer4cicios diferentes para o qual necessito d ajuda.. tem,os k saber quais os problemas no codigo e as possiveis soluções.
Exercicio 1- ------------------------------
class X {
public:
X();
X(int);
X(const X&);
X& operator=(const X&);
// ...
};
class Y {
public:
Y();
private:
X x;
};
//...
Y::Y() { x=0; }
//...
Exercicio 2___________________________-
class Word {
public:
Word(char *);
//...
private:
string name;
int occurs;
};
main {
//...
Word noun ("book");
Word verb = noun;
//...
}
Exercicio 3 -------------------------------------------------------
class target_class{
friend class friend_class;
private:
double salary;
int rating;
};
target_class classA;
int main () {
char *p = (char *) &classA;
classA.rating=5;
int *pd = (int*) (p+sizeof(double));
*pd = 5;
return 0;
}
exercicio 4........................................
class Pessoa {
private:
std::string nome;
std::string morada;
public:
Pessoa();
virtual ~Pessoa();
//..
};
class Aluno: public Pessoa {
private:
std::string nomeEscola;
std::string moradaEscola;
public:
Aluno();
~Aluno();
//...
};
int main ( int argc, char** argv) {
//...
bool validaAluno (Aluno s);
Aluno fourrier;
bool fourrierIsOK = validaAluno(fourrier);
//...
}
exercicio 5.......................................
String&:
perator=(const String & s)
{
len = s.len;
str = s.str;
index = s.index;
}
...
int main () {
String article ( "The");
String common("For example");
...
common = article;
...
}
Pelo k ja andei a ver algumas coisas p+enso k é isto:
(1):??? Estamos a igualar uma classe a zero, penso k está mal. Só se faz se existir o operador igual, mas com parametros iguais, isto é, do mesmo tipo.
(2)
ara que sepossa "igualar" dois objetos de uma classe simplesmente, precisamos estabelecer a sobrecarga do operador de igualdade.Além disso, é necessario que haja um construtor de cópia funcionando de forma correcta para que o compilador execute sua função.
Como nao está implementado um copy construter vai utilizar um por default.
Falta um return no main!
(3):?
(4)
ara começar a classe derivada nao mode ter acesso aos atributos de menbro "private" da classe base, para isso teremos k modar para protegidos..
E o main terá k ter algum return!
(5):?
Exercicio 1- ------------------------------
class X {
public:
X();
X(int);
X(const X&);
X& operator=(const X&);
// ...
};
class Y {
public:
Y();
private:
X x;
};
//...
Y::Y() { x=0; }
//...
Exercicio 2___________________________-
class Word {
public:
Word(char *);
//...
private:
string name;
int occurs;
};
main {
//...
Word noun ("book");
Word verb = noun;
//...
}
Exercicio 3 -------------------------------------------------------
class target_class{
friend class friend_class;
private:
double salary;
int rating;
};
target_class classA;
int main () {
char *p = (char *) &classA;
classA.rating=5;
int *pd = (int*) (p+sizeof(double));
*pd = 5;
return 0;
}
exercicio 4........................................
class Pessoa {
private:
std::string nome;
std::string morada;
public:
Pessoa();
virtual ~Pessoa();
//..
};
class Aluno: public Pessoa {
private:
std::string nomeEscola;
std::string moradaEscola;
public:
Aluno();
~Aluno();
//...
};
int main ( int argc, char** argv) {
//...
bool validaAluno (Aluno s);
Aluno fourrier;
bool fourrierIsOK = validaAluno(fourrier);
//...
}
exercicio 5.......................................
String&:
{
len = s.len;
str = s.str;
index = s.index;
}
...
int main () {
String article ( "The");
String common("For example");
...
common = article;
...
}
Pelo k ja andei a ver algumas coisas p+enso k é isto:
(1):??? Estamos a igualar uma classe a zero, penso k está mal. Só se faz se existir o operador igual, mas com parametros iguais, isto é, do mesmo tipo.
(2)
Como nao está implementado um copy construter vai utilizar um por default.
Falta um return no main!
(3):?
(4)
E o main terá k ter algum return!
(5):?