30/09/2018, 20:51

Vấn đề về class trong C++

Xin chào mọi người, cho em hỏi là ở dòng cout << ABC.getname << endl ;cout << ABC.getname() << endl ;
Viết như thế nào là đúng ạ ? Sao em viết cả hai đều có lỗi cả @@

#include <iostream>

using namespace std;

class lophoc
{
public:
	void setname(string ced){
		
		ced = name;
	}
	string getname(){
		return name;
	}
	
private:
	string name;
};
void main()
{
	lophoc ABC;
	ABC.setname(" Xin chao thi chu") ;
	cout << ABC.getname << endl ;
	system("pause");
	
	
	
}
Ngô Doãn Tuấn viết 22:58 ngày 30/09/2018

cout << ABC.getname << endl ;

Việc gọi tới một phương thức (method) trong class thì

cout << ABC.getname() << endl ;

Ty Nguyễn viết 23:07 ngày 30/09/2018

@@ Để vậy thì nó báo lỗi thế này:
IntelliSense: no operator “<<” matches these operands operand types are: std::ostream << std::string

Ngô Doãn Tuấn viết 22:54 ngày 30/09/2018

public:
void setname(string ced){

	ced = name;
}
string getname(){
	return name;
}
void string setname();
void string getname();

Bạn không định kiểu trả về cho phương thức

Ty Nguyễn viết 23:02 ngày 30/09/2018

Vẫn không được bạn ơi Bạn nói rõ hơn giúp mình được không ạ @@

Ngô Doãn Tuấn viết 23:01 ngày 30/09/2018

Mục đích của bạn là lấy về giá trị của name và đặt giá trị cho nó phải không ?
Nếu vậy thì bạn phải tạo hai phương thức riêng biệt
1 là getname();
2 là setname(string name);

Ty Nguyễn viết 22:52 ngày 30/09/2018

void setname(string ced){

	ced = name;
}
string getname(){
	return name;
}

Mình viết như vậy không đúng hả bạn ?

Ngô Doãn Tuấn viết 23:02 ngày 30/09/2018
void setname(string ced){
name = ced;
}
string getname(){
return name;
}

Bạn thử coi sao ?

Ty Nguyễn viết 23:01 ngày 30/09/2018

Lỗi rồi bạn ơi, vừa khai báo kiểu void + string đâu được bạn @@

Ngô Doãn Tuấn viết 23:00 ngày 30/09/2018

Quen tay ghi lộn

Ngô Doãn Tuấn viết 23:02 ngày 30/09/2018

Bài của bạn nhầm ở hai chỗ này
1

void setname(string ced){
ced = name;
}

2

cout << ABC.getname << endl ;

Ty Nguyễn viết 23:00 ngày 30/09/2018

Minh sửa lại rồi @@ Sao nó vẫn báo lỗi ở dòng cout là sao ta.

#include <iostream>

    using namespace std;

    class lophoc
{
public:
	void setname(string ced ){
		name = ced;		
	}
	
	string getname(){
		return name;
	}
	
	
private:
	string name;
};
void main()
{
	lophoc ABC;
	ABC.setname(" Xin chao thi chu") ;
	cout << ABC.getname() << endl ;
	system("pause");	
	
}
Ngô Doãn Tuấn viết 22:55 ngày 30/09/2018

#include <iostream>

using namespace std;

class lophoc

{
public:
void setname(string ced ){
name = ced;
}

string getname(){
	return name;
}

private:
string name;
};
void main()
{
lophoc ABC;
ABC.setname(" Xin chao thi chu") ;
cout << ABC.getname() << endl ;
system(“pause”);

}

Mình thấy có lỗi gì đâu ???

Ty Nguyễn viết 23:03 ngày 30/09/2018

Đây bạn ơi @@

Văn Dương viết 23:07 ngày 30/09/2018

Bỏ cái dấu cách giữa cout và << đi.

Bé tập Code viết 22:58 ngày 30/09/2018

Xài string không cần thư viện à ???
Nó báo lỗi không hiểu kìa.

Ty Nguyễn viết 23:04 ngày 30/09/2018

Rồi được rồi bro ơi. Cám ơn nhiều ạ

Bé tập Code viết 22:54 ngày 30/09/2018

Với lại int main() chứ đừng void main()

Ty Nguyễn viết 23:04 ngày 30/09/2018

Sao phải dùng như vậy vậy bro ?

Bé tập Code viết 23:01 ngày 30/09/2018

Để sau này đi phỏng vấn không có bị rớt

Ty Nguyễn viết 23:02 ngày 30/09/2018

^^ Cám ơn bro đã chia sẽ kinh nghiệm.

Bài liên quan
0