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 其次,如果你不懂前端基础知识, ...
随机推荐
- 巨蟒python全栈开发linux之centos1
1.linux服务器介绍 2.linux介绍 3.linux命令学习 linux默认有一个超级用户root,就是linux的皇帝 注意:我的用户名是s18,密码是centos 我们输入密码,点击解锁( ...
- python系列十五:Python3 错误和异常
#!/usr/bin/python #-*-coding:gbk-*- #Python3 错误和异常'''Python 语法错误或者称之为解析错语法分析器指出了出错的一行,并且在最先找到的错误的位置标 ...
- python系列十三:Python3 输入输出
#!/usr/bin/python #Python3 输入输出 import math'''输出格式美化Python两种输出值的方式: 表达式语句和 print() 函数.第三种方式是使用文件对象的 ...
- jq cookie
//$.cookie("xx");//读取xx的值 //$.cookie("xx","123");//设置xx的值为123 //$.cook ...
- PHPExcel实现上传excel文件导入数据库
项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript&qu ...
- shutil 模块 高级的文件、文件夹、压缩包 处理模块
高级的文件.文件夹.压缩包 处理模块 # 将文件内容拷贝到另一个文件中 shutil.copyfileobj(fsrc, fdst[, length]) import shutil shutil.co ...
- 201703 ABAP面试题002
转自: ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard (转) 问题一:锁对象(Lock Object)和 FM(Function Module)激活锁定对象时,产生的 F ...
- MySQL中的DDL,DML
MySQL中的DDL,DMLDDL:数据定义语言: CREATE,ALTER,DROP DB组件:数据库.表.索引.视图.用户.存储过程.存储函数.触发器.事件调度器等 CR ...
- tomcat8.5.11的manager页面总是提示403的问题
修改conf/tomcat-users.xml加入: <role rolename="manager"/> <role rolename="manage ...
- qemu-img 的使用
qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件.qemu-img也是QEMU/KVM使用过程中一个比较重要的工具,本节对其用法和实践 ...