30/09/2018, 18:11

Thắc mắc về Stringlen: hàng code : "this->chiptype = new char[strlen(chiptype), +1];" có tác dụng gì?

Các bạn cho mình hỏi hàng code : “this->chiptype = new char[strlen(chiptype), +1];” có tác dụng gì ?

#include <iostream>

using namespace std;

class Computer
{ 
	char *chiptype;
	int speed;
public:
	void getdetails()
	{
		cin >> speed;
		cin.ignore();
		chiptype = new char[86];
		gets(chiptype);
	}
	void showdetails()
	{
		cout << "Chip" << chiptype << " Speed = "<< speed;
	}
	Computer()
	{
		chiptype = NULL;
		speed = 0;
	}
	Computer(char *chiptype, int speed)
	{
		this->chiptype = new char[strlen(chiptype), +1];
		strcpy(this->chiptype, chiptype);
		this->speed = speed;
	}
	Computer(Computer &cp)
	{
		this->chiptype = new char[strlen(cp.chiptype) + 1];
		strcpy(this->chiptype, cp.chiptype);
		this->speed = cp.speed; 
	}
	~Computer()
	{
		if (this->chiptype)
			delete[]chiptype;
	}
};



void main()
{
	Computer cp1;
	Computer cp2("ABC", 4);
	Computer cp3(cp2);
	cp1.getdetails();
	cp1.showdetails();
	cp2.showdetails();
	cp3.showdetails();
}
Minh Hoàng viết 20:24 ngày 30/09/2018

Mình nghĩ dấu , bị dư rồi. Bạn đã thử chạy đoạn code chưa?
Chức năng của class này là đọc các thông số của các con chip.

Lương Nhật Duy viết 20:22 ngày 30/09/2018

this->chiptype = new char[strlen(chiptype), +1
Minhf hoir cais ys nghiax cuar caau code nayf trong cai class @@

Minh Hoàng viết 20:17 ngày 30/09/2018

Nó không có ý nghĩa bạn à, vì cú pháp sai rồi. Cú pháp tiếng việt của bạn cũng sai nên mình cũng không hiểu bạn nói gì để giải đáp.
Vì thế, bạn nên tự tìm hiểu về cấp phát động trong C++, và chức năng của hàm strlen.

Lương Nhật Duy viết 20:13 ngày 30/09/2018

Ok để mình xem thử @@ tại thằng bạn đưa code nhờ check giùm mà đọc tới hàng code đó ko hiểu đc

Bài liên quan
0