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 其次,如果你不懂前端基础知识, ...
随机推荐
- 任务05—学习 MARKDOWN 语言
我的简历地址: https://github.com/jinxiaohang/MyResume/blob/master/ForJavaJob.md 本任务主要目的掌握markdown. 1.首先是工具 ...
- 数据库之MySQL(二)
数据表基本 1.创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空)ENGINE=InnoDB DEFAULT CHARSET=utf8 是 ...
- 数据库之MySQL(一)
概述 1.什么是数据库 ? 数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ...
- 用户(user)和用户组(group)相关的配置文件、命令或目录;
1.与用户(user)和用户组(group)相关的配置文件: 1)与用户(user)相关的配置文件:/etc/passwd 注:用户(user)的配置文件:/etc/shadow 注:用户(user) ...
- 002-maven修改仓库以及镜像地址
1.将下载好的maven,修改配置 <localRepository>G:\mavenrepository-idea</localRepository> 2.修改增加镜像地址 ...
- PyQt4 颜色选择,字体选择代码
# -*- coding: utf-8 -*- """ ------------------------------------------------- File Na ...
- CRC冗余校验码的介绍和实现
from:http://yoyo.play175.com/p/200.html 节选至百度百科: 首先,任何一个由二进制数位串组成的代码,都可以惟一地与一个只含有0和1两个系数的多项式建立一一对应的关 ...
- git在IDEA中的使用
学习资料: http://blog.csdn.net/autfish/article/details/52513465 (关于提交的讲解) http://blog.csdn.net/ck443870 ...
- dockfile
dockerfile是对镜像的描述 新建一个dockfile文件 docker inspect
- Loadrunder脚本篇——web_custom_request做接口测试
一.POST + JSON格式参数 例: web_custom_request("create", "URL=http://xxx.xxx.x.xx:1600/ditui ...