bonoddr
Membros-
Total de itens
181 -
Registro em
-
Última visita
Tudo que bonoddr postou
-
Não vale a pena aprender pra migrar para PHP por exemplo? E no Brasil realmente raramente pedem c++ no mercado de trabalho... Mas se vocês forem pros E.U.A. ou pro Canadá, não vai faltar oportunidade, podem crer...
-
Pra quem quiser um bom acervo de material de c++, tem no site do meu professor da faculdade: www.uniriotec.br/~angelo.ciarlini/ed Eu abandonei a matéria, vou puxar de novo período que vem (estruturas de dados), mas aproveitem o material Eu acho uma ótima idéia programar por c++ porque dá uma boa base pra quem pensa em mexer com PHP tb
-
using std::string é uma maneira mais nova de programar, acredito que tenha sido incorporada com o C#. A própria biblioteca string de std se encarrega de atribuir uma string à outra sem precisar percorrer caractere por caractere, como você já deve ter visto em char nome[64] ou char *nome. A função strcpy copia uma string para a outra, mas isso quando não se usa a biblioteca string. No caso do construtor do programa, se o parâmetro nome fosse indicado por char *nomeParam por exemplo, eu atribuiria o nomeParam em nome com o método strcpy. Eu já consegui ver o problema. com o método cin.ignore() depois do meu último cin, parece que o buffer é esvaziando para novas atribuições para o próximo objeto, mas não sei porque isso acontece somente para um objeto do tipo string. Que vocês acham? Comentem ae, valeu!
-
gets(var) não é recomendável para o padrão C++... no meu 1º post, eu coloquei só um pedaço do meu código, vou colocá-lo abaixo. Se quiser testar kartter, você vai entender melhor qual o problema.. //.h: #ifndef FUNC_H #define FUNC_H #include <string> #include <iostream.h> class func{ private: string nome; int idade; int matricula; int creditos; public: func(int); //sobrecarga de construtor func(string, int, int,int); ~func(); int retornaCreditos(); void exibeFunc(); func operator+(func &s2); }; #endif //.cpp: #include "func.h" using std::cin; using std::cout; using std::endl; using std::string; func::func(string nom, int idad, int matr, int credi) { nome=nom; idade=idad; matricula=matr; creditos=credi; } func::func(int cred) { creditos=cred; } int func::retornaCreditos() { return creditos; } void func::exibeFunc() { cout<<"Nome: "<<nome<<endl; cout<<"Idade: "<<idade<<endl; cout<<"Matricula: "<<matricula<<endl; cout<<"Creditos: "<<creditos<<endl<<endl; } func func::operator+(func &s2) { unsigned int c = creditos + s2.creditos; func t©; //altere para c entre parenteses depois do "t", fórum modifica return t; } void main() { func *temp; temp = new func(0); func *totalCreditos; totalCreditos = new func(0); int creditos; string nome; int idade; int matricula; const int tam=3; //tem q ser const pra não mudar depois func *funcionarios[tam]; func *crfunc[tam]; for (int i=0;i<tam;i++) { cout<<"Entre com os dados do funcionario:"<<endl; cout<<"Nome: "; getline(cin,nome); cout<<"Idade: "; cin>>idade; cout<<"Matricula: "; cin>>matricula; cout<<"Creditos: "; cin>>creditos; cout<<endl<<endl; cin.ignore(); //aqui está a linha editada funcionarios = new func(nome,idade,matricula,creditos); crfunc = new func(creditos); *totalCreditos = (*crfunc) + *temp; temp = totalCreditos; funcionarios->exibeFunc(); } cout<<"Total de creditos: "<<totalCreditos->retornaCreditos()<<endl; } func::~func(){} Na linha do getline (o mais recomendável para codificação c++), no 1º objeto eu consigo inserir o nome, mas a partir do 2º objeto, a string nome é pulada e não é armazenada. E se eu colocar duas vezes esta linha, na instanciação do 1º objeto eu obviamente tenho que entrar com o nome duas vezes, mas nos demais eu entro uma única vez. Estranho né? Sabe porque isso acontece? Propõe alguma solução?
-
Olá pessoal. Gostaria de saber se alguém já se deparou com o meu problema. Estou instanciando objetos através de uma classe func com 4 parâmetros (string,int,int,int) através de um loop for. abaixo exibirei o código: void main(){ int creditos; string nome; int idade; int matricula; const int tam=3; for (int i=0;i<tam;i++) { cout<<"Entre com os dados do funcionario:"<<endl; cout<<"Nome: "; getline(cin,nome); cout<<"Idade: "; cin>>idade; cout<<"Matricula: "; cin>>matricula; cout<<"Creditos: "; cin>>creditos; cout<<endl; } } uso a função getline da biblioteca string para "gravar" uma string composta (por exemplo: joao pereira). Mas quando instancio no meu programa o 2º objeto, ele simplesmente pula esta linha e vai pra variável "idade". Se eu coloco duas vezes a linha do getline, no 1º objeto devo inserir o nome duas vezes, mas a partir do 2º, insiro normalmente. Alguém sabe como resolvo esse problema? Valeu!
-
Pronto, me registrei... Alguém pode me responder na moral? No aguardo... :P