c++ - 构造函数c ++中的setter函数
问题描述
我正在尝试在构造函数中使用 setter 函数,这是我以前从未做过的。它给了我以下错误:
[Error] no match for call to '(Laptop) (const char [5], const char [3], int, int)'
那么我也需要编写setter函数吗?我的意思是在构造函数之外?我的意思是这样
void Laptop::setBrand(char a[])
{
brand=a;}
我认为错误出现在第二个构造函数中,它需要四个参数,但我找不到它。
这是代码:
#include <iostream>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
using namespace std;
class Laptop{
private:
char brand[10];
char processor[10];
int ram;
int hardDrive;
public:
void setBrand(char Bra[]);
void setProcessor(char Pro[]);
void setRam(int Ram);
void setHardDrive(int HDrive);
char *getBrand();
char *getProcessor();
int getRam();
int getHardDrive();
Laptop();
Laptop(char [],char [],int ,int );
};
Laptop::Laptop(){
cout<<"Default constructor called...\n";
strcpy(brand,"None");
strcpy(processor,"None);
ram=0;
hardDrive=0;
}
我认为错误在构造函数中
Laptop::Laptop(char Bra[],char Pro[],int Ram,int HDrive)
{
cout<<"Parameterized constructor called...\n";
setBrand(Bra );
setProcessor(Pro );
setRam(Ram);
setHardDrive(HDrive);
}
char *Laptop::getBrand()
{
return brand;
}
char *Laptop::getProcessor()
{
return processor;
}
int Laptop::getRam()
{
return ram;
}
int Laptop::getHardDrive()
{
return hardDrive;
}
int main()
{
Laptop laptopObj1;
Laptop laptopobj1("Dell","i5",4,500);
cout<<"Brand :"<<laptopObj1.getBrand()<<"\n";
cout<<"Processor :"<<laptopObj1.getProcessor()<<"\n";
cout<<"Ram :"<<laptopObj1.getRam()<<"\n";
cout<<"HardDrive :"<<laptopObj1.getHardDrive()<<"\n";
cout<<"Brand :"<<laptopObj2.getBrand()<<"\n";
cout<<"Processor :"<<laptopObj2.getProcessor()<<"\n";
cout<<"Ram :"<<laptopObj2.getRam()<<"\n";
cout<<"HardDrive :"<<laptopObj2.getHardDrive()<<"\n";
}
解决方案
您将两个 const char*
作为参数传递,因此您应该更改它:
Laptop::Laptop(char Bra[],char Pro[],int Ram,int HDrive)
对此:
Laptop::Laptop(const char* ,const char* ,int Ram,int HDrive)
推荐阅读
- javascript - Nextjs 中的 getStaticProps() 不显示页面源
- python - Pyfolio - 使用月度数据
- javascript - 如何在javascript日期中获取一天的开始和结束?
- visual-studio - 如何删除项目中的“间接引用”?
- google-apps-script - 如果满足条件,Apps 脚本复制和粘贴行
- email - 如何在短时间内向特定公司拥有的同一电子邮件发送多条消息?
- python - 遍历页面 | 硒| ElementNotInteractableException:消息:元素不可交互
- c++ - 在 C++ 中定义数组并在 struct 中使用它
- javascript - 一页中有多个引导模式
- javascript - Javascript 在桌面浏览器中有效,但在移动模式下无效 (F12)