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 其次,如果你不懂前端基础知识, ...
随机推荐
- Coursera课程《Machine Learning》学习笔记(week2)
1 特征 1-1 什么是特征? 我的理解就是,用于描述某个样本点,以哪几个指标来评定,这些个指标就是特征.比方说对于一只鸟,我们评定的指标就可以是:(a)鸟的翅膀大还是小?(b)鸟喙长还是短?(c)鸟 ...
- C - Dungeon Master
C - Dungeon Master Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决
form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决 一.问题: 页面输入框中的中文内容,在后台乱码,导致搜索功能失效:(详细可以见后面的重现) 二.原因: 浏览器对于数据的默认编码格式为 ...
- 关于git 提交到分支
想必大家对于github并不陌生,但是有时候我们提交到github上的页面,想将静态的页面展示给别人看,所以这个时候,需要创建一个gh-pages的分支,然后利用 https://you github ...
- Neighbor Discovery Protocol Address Resolution Protocol
https://en.wikipedia.org/wiki/Address_Resolution_Protocol The Address Resolution Protocol (ARP) is a ...
- tomcat单应用多实例部署报错 应用jar不存在
使用tomcat部署war包,同一环境有tomcat7和tomcat8两个应用,我这边使用tomcat7, 应用部署在其他目录,通过在启动脚本中设置CATALINA_HOME和CATALINA_BAS ...
- 解决Raize日历控件显示的问题
解决Raize日历控件显示的问题 近自己的程序被测试人员发现一个小问题,就是程序中的日历选择框,显示中的“星期一.星期二....”都显示成了“星.....”,我自己看了代码,原来是raize的控件问题 ...
- python并发编程&IO模型
一 IO模型介绍 为了更好地了解IO模型,可先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(n ...
- 一起talk C栗子吧(第七十八回:C语言实例--创建进程)
各位看官们,大家好.上一回中咱们说的是DIY ls命令续的样例.这一回咱们说的样例是:创建进程.闲话休提.言归正转. 让我们一起talk C栗子吧! 看官们.关于进程的概念,我们简单做个简单的介绍:进 ...
- 剑指offer 面试39题
面试39题: 题目:数组中出现次数超过一半的数字 题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中 ...