C++两种字符串传参构造函数
第一种:
#include"iostream"
#include"string"
using namespace std; class Motor{
protected:
int n;
int tire;
double motor;
char *str1; //基类为指针
char *str2;
public:
virtual void Display()=;
}; class Car:public Motor{
public:
Car(char *Str1,char *Str2,int N,int Tire,double Motor){
str1 = new char[strlen(Str1)+]; //要先获得字符串大小
str2 = new char[strlen(Str2)+];
strcpy(str1,Str1);
strcpy(str2,Str2);
n = N;
tire = Tire; motor = Motor;
}
~Car(){
delete[] str1; //最后要删除内存
delete[] str2;
};
virtual void Display(){
cout<<"the car"<<"可载人数:"<<n<<"、轮胎数:"<<tire<<"、马力数:"<<motor<<endl;
cout<<"产于"<<str1<<"车的主人为:"<<str2<<endl;
}
};
第一种相对而言可以节省内存,不怕传入的字符串过长,但要记得删除指针释放内存
第二种:
#include"iostream"
using namespace std;
#define pi 3.14159 class Motor{
protected:
int man,wheel,mata;
char produce[]; //基类为数组
char owner[];
public:
Motor(int m,int w,int ma,char* pro,char* own){
man=m; wheel=w; mata=ma;
strcpy(produce,pro); //不必获得字符串大小,因开始已指定
strcpy(owner,own);
}
//无需虚构函数去删除指针,不会泄露内存
virtual void Dispaly(){
cout<<"the motor"<<"可载人数:"<<man<<"、轮胎数:"<<wheel<<"、马力数:"<<mata<<endl;
cout<<"产于"<<produce<<"车的主人为:"<<owner<<endl;
}
}; class Car:public Motor{
public:
Car(int m,int w,int ma,char* pro,char* own):Motor(m, w, ma, pro, own){}
void Dispaly(){
cout<<"the car"<<"可载人数:"<<man<<"、轮胎数:"<<wheel<<"、马力数:"<<mata<<endl;
cout<<"产于"<<produce<<"车的主人为:"<<owner<<endl;
}
};
第二种相对而言更简便,但往往浪费内存,不确定传入的字符串参数大小。
C++两种字符串传参构造函数的更多相关文章
- 同一路由带参刷新,以及params和query两种方式传参的异同
同一路由应该不叫跳转了吧,就先叫刷新好了. 需求及问题 今天做web课设有这样一个需求: 在导航栏中一项叫做教师队伍一级菜单下,有三个二级菜单,分别为教授.副教授.讲师.这三个二级菜单分别对应一个页面 ...
- python flask学习第2天 URL中两种方式传参
新创建项目 自己写个url映射到自定义的视图函数 在url中传递参数 app.py from flask import Flask app = Flask(__name__) @app.route ...
- 【shell】两种字符串提取场景的实现
shell虽然比batch顺眼点儿,但还是老话,入门容易,精通难. 1.场景一是这样的,现有字符串的内容 name: tiger; age:18; location:china; 需求:提取每个属性的 ...
- js中使用进行字符串传参
在js中拼接html标签传参时,如果方法参数是字符串需要加上引号,这里需要进行字符转义 <a href='javascript:addMenuUI("+"\"&qu ...
- web 中常用的两种上传文件的方法总结
这里我们来总结整理一下常用的两种文件上传方式以及要注意的东西: 1.springmvc .MultipartFile 的上传方式. 2.org.apache.commons.fileupload 使用 ...
- c# 两个软件传参
1.socket 传参,类似于小型的服务器和客户端,一端发送,另一端保持监听状态. 2.通过第三方 数据库或者文件.
- GitHub两种上传方式的对比----SSH / https
https://www.jianshu.com/p/1ac06bcd8ab5 https://www.cnblogs.com/lqfxyy/p/5740720.html https://blog.cs ...
- 关于http的两种上传方法
http传输数据GET和POST的两种方法: 1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示. 2.get方式传递的参数可以在URL上看见,安全性不高,反之post安全 ...
- Selenium系列(十一) - 针对两种上传文件方式的实现方案
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
随机推荐
- Partial Sum
Partial Sum Accepted : 80 Submit : 353 Time Limit : 3000 MS Memory Limit : 65536 KB Partial Sum ...
- 记录-java(jxl) Excel导入数据库
本内容主要包括(文件上传.excel2003数据导入数据库)excel导入数据库功能需要jxl jar包支持 下面是文件上传的前端测试代码 <%@ page language="ja ...
- SpringBoot-------实现多数据源Demo
之前SpringBoot出来时候就看了下Springboot,感觉的确精简掉了配置文件! 还是很方便的!没办法,我只是个菜鸟! 什么怎么启动Springboot什么的就不说了, 具体的Demo地址我都 ...
- Django 请求生命周期【图示】
Django 请求生命周期
- python多线程(二)
开启线程的两种方式 #方式一from threading import Threadimport timedef sayhi(name): time.sleep(2) print('%s sa ...
- Android系统移植与调试之------->如何修改Android的默认语言、默认时区
修改device/other/TBDG1073/ system.prop文件 1.设置默认语言 找到device/other/TBDG1073/ system.prop文件,修改属性ro.produc ...
- Windows系统Python 安装第三方模块时,提示pip版本有问题
如果按照提示输入python -m pip install --upgrade pip 还不行, 那么执行easy_install --upgrade pip 即可 参考:https://stacko ...
- vim之可视化
参考文档:http://blog.csdn.net/ii1245712564/article/details/46960387 先梳理关键知识,方便查阅 v(小v):进入可视化 V(大V):进入可视行 ...
- uuid的使用
1.mysql中直接使用uuid()函数,可以生成一个随机的uuid 正常的uuid是36位长度的,其中有4个字符是‘-’,在mysql中可以使用replace()函数来替换‘-’ insert in ...
- Ajax:js自执行函数、jsonp、cros
一.js自执行函数 #(function(){alert(1);})(); (function(){ alert(1); } )(); 二.javascript同源策略 1. 什么是同源策略 理解跨域 ...