
c++
扎刺
太菜 要多学!!
展开
-
const,对象指针--c++d对c的扩充
指向成员函数的指针定义:void (Time::*p)();//定义一个指针未初始化,必须指明所属类名。初始化:p = &Time::display;//p指向display这个函数调用:(t1.*p)();实现:#include<iostream>using namespace std;class human_;class human {private: int age; string name;public: void get_() { cin &g.原创 2021-07-04 22:01:50 · 197 阅读 · 3 评论 -
友元----c++对c的扩充(13)
友元包括友元函数和友元类。特性:友元可以访问与其有好友关系的类中的私有成员。友元函数:如果在本类之外的其他地方定义一个函数,(这个函数可以是非成员函数,也可以是成员函数),在类体中用friend进行声明,此函数就称为本类的友元函数。(1)将普通函数声明为友元函数。#include<iostream>using namespace std;class human {private: int age; string name;public: void get_() { c原创 2021-07-03 15:14:16 · 127 阅读 · 0 评论 -
虚基类的应用——c++对c的扩充(12)
实现,两个类有相同的基类,并且同时作为另一个类的基类。利用虚基类,在定义这两个类时,在继承关系前写上关键词virtual,则 将两者公有的两份基类数据,在传给另一个类时只有一份。# include <iostream>using namespace std;class human { string name; int age; char sex; string add; string num;public: human(); human(string a, int b,原创 2021-07-01 16:46:14 · 139 阅读 · 0 评论 -
程序设计实习MOOC / 程序设计与算法(三)---练习题
依旧是补充代码:程序填空,使其输出9 22 5#include <iostream>using namespace std;class Sample {public: int v; //正确 Sample() {};//默认构造函数必须存在 Sample(int n) :v(n) { }; Sample(const Sample & x){ v = x.v + 2; };};void PrintAndDouble(Sample o)//此时将b传入该函数时.原创 2021-07-01 16:29:47 · 551 阅读 · 0 评论 -
c++练习题---改错
以下题目是补充代码,函数返回的是一个a【i】 通常理解应该是作为一个int 类型,这个函数的返回值引用了a【i】//具体实现意义还是不太明白。而这样写的好处是,返回值可以写在复制号的左边,可以进行赋值等价于对a【i】进行赋值。#include <iostream>using namespace std;int * & //错误int &//正确getElement(int * a, int i){ return a[i];}int main(){ in原创 2021-06-27 23:42:26 · 1429 阅读 · 4 评论 -
继承(访问权限)-----c++对c的扩充(11)
以下例子都基于上面的图片:私有继承:# include <iostream>using namespace std;class human {public: human(); void get_(); void display_();private: string name; string sex; double age;protected: double hight;};human::human() { name = "\0"; sex = "\0";.原创 2021-06-26 21:48:13 · 107 阅读 · 4 评论 -
继承(基本属性)-----c++对c的扩充(10)
< 1 >派生类的声明class human{};class student:public human{};student 是新建的类名public 是表示基类中的成员再派生类中的继承方式。,若此项不写,则默认为私有。human 是表示已写好的基类。< 2 >基本特性:子类从基类接收成员是没有选择的。必须将基类的全部成员接收。(目前c++是无法做到 对于基类的内容有选择的接收)。从基类接收的成员可被调整。①改变基类成员在派生类的访问属性。②原创 2021-06-26 16:29:08 · 118 阅读 · 0 评论 -
不同类型数据间的转换----c++对c的扩充(9)
标准类的转换有两种:< 一 > 隐式类型转换此段代码的处理过程:首先将int类型的i转化为double类型,与2.3运算,然后再将结果,转化为int类型。此过程使由c++编译系统自动完成的,用户不需要干扰。< 二 >显示类型转换程序员将指定的的数据转换为另一种指定的类型;如下图所示:ps:c语言中也有类型转换,不过圆括号是在数据类型两侧的:c++保留了这种写法,不过还是提倡采用c++的写法,也就是上图所示。———————————————————————————原创 2021-05-16 18:01:20 · 198 阅读 · 0 评论 -
运算符的重载--练习
加减乘除符号重载(友元)# include <iostream>using namespace std;class num {private: double real; double imag;public: num(); void set(); void display(); //乘号重载 friend num operator *(const num& a, const num& b); friend num operator +(const num原创 2021-05-16 16:23:46 · 242 阅读 · 0 评论 -
运算符的重载(双目)——c++对c的扩充(8)
加号的重载有两种写法:(1)使用成员函数# include <iostream>using namespace std;class ex {private: //实部 double xx; //虚部 double zz;public: ex(){ xx = 0; zz = 0; } ex(double x,double z) :xx(x) ,zz(z){ } void display(); void set(); //重载声明 ex operato原创 2021-05-16 13:32:36 · 150 阅读 · 0 评论 -
PTA 7-9 素因子分解
将正整数n分解为其素因子的乘积,其中n>=2并且在int范围内。Solution类的数据成员n代表需要分解的正整数,构造函数完成对数据成员n的初始化,声明了成员函数solve()实现对n的分解。请根据样例输出实现成员函数。注意输出时每行最后一个数字后面没有空格。#include <iostream>#include <cmath># include <math.h>using namespace std;class Solution {public:原创 2021-04-28 20:43:10 · 1276 阅读 · 0 评论 -
怎样使用类和对象 --c++对c的扩充(7)
4)带参数的构造函数用于:不同对象赋予不同的初值# include <iostream># include <algorithm>using namespace std;//方式一class Time{public: Time(int a, int b, int c); void show_time();private: int hour; double minute; int sec;};Time::Time(int a, int b, int c)原创 2021-04-06 20:06:20 · 95 阅读 · 0 评论 -
怎样使用类和对象 --c++对c的扩充(6)
初始化1)对象的初始化:针对Public成员:# include <iostream># include <algorithm>using namespace std;//方式一class Time{public://不写public则默认为private,那么主函数将无法调用这些属性 int hour; double minute; int sec;};//int main() {//初始化 Time t = { 12,13,14 }; co原创 2021-04-06 19:04:40 · 114 阅读 · 0 评论 -
c++练习(1)
错误原因:此时类中的变量是私有的,所以当把行数在外部的时候是无法访问到这个变量的,所以必然会报错,所以在使用这种对象的引用来操作对象的前提是类中的属性是public的,否则就行不通而一下的就是正确的。...原创 2021-03-30 22:06:54 · 75 阅读 · 0 评论 -
类外定义的成员函数,内置成员函数,对象成员的引用------c++对c的扩充(5)
1. 在类外定义成员函数# include <iostream># include <vector># include <string>using namespace std;class Student {private: int num; string name; char sex;public: //这个位置特别重要,必须要做函数声明,在定义函数之前,如果你是想写类外函数的话 void display(); void setname();}原创 2021-03-30 21:00:18 · 610 阅读 · 0 评论 -
字符串-------c++对c的扩充(4)
字符串变量1. 定义字符串变量。必须先定义,后使用,2.定义之后可以直接赋值,但是数组不可以3.既可以用字符串常量给字符串变量赋值,也可以用字符串变量给字符串变量赋值。4. 可以对字符串中某一字符进行操作5. 字符串直接可以直接赋值。6,字符连接可以用加号。7. 比较大小可以直接用< == > != >= <= 。8.字符串数组定义方式:每一个字符串的长度不要求相同,是可变化的, 字符串数组和字符数组是...原创 2021-03-15 12:58:03 · 304 阅读 · 0 评论 -
引用,内置函数,作用域运算符------c++对c的扩充(3)
变量的引用概念:“引用”就是变量的别称。作用:给变量另取一个名字,一边在需要时可以方便,间接地应用该变量,简单的应用就是如上图所示,特殊说明:“&”是引用声明符,此时不代表地址。对变量声明一个引用,并不另开内存单位,b和a都是一个变量单元,声明一个引用时,必须同时使之初始化,既声明它代表哪一个变量。int a = 3;int &b;//错误double a = 4.2;int &b = a;//错误,因为:b是整型声明,而a不是整型变量当一个声明被引用原创 2021-03-04 21:13:11 · 172 阅读 · 1 评论 -
含有默认参数的函数,函数的模板------c++对c的扩充(2)
函数的模板直接上代码# include <iostream>using namespace std;template<typename T>//template 的含义是“模板”,尖括号中先写关键词typename(或class),后面跟一个类型参数T,//这个类型参数实际上是一个虚拟的类型名,表示模板中出现的T是一个类型名,但是此时T的类型名是不确定的。//下面这个就是模板T max(T a, T b, T c) { if (a > b)b = a; if原创 2021-03-03 20:20:53 · 117 阅读 · 0 评论 -
setw()函数,重载,const--------c++对c的扩充(1)
利用setw()函数控制数据输出格式,自动向右对齐//c++的输入输出# include <iostream># include <iomanip>//包含setw()函数的头文件using namespace std;int main() { int a; double b; char c; cin >> a >> b >> c; cout << "a=" << setw(6) << a &原创 2021-03-02 19:57:54 · 226 阅读 · 0 评论 -
包含类的c++程序
//包含类的c++程序# include <iostream>using namespace std;//名为学生的一个类class Student { //每一个学生的私有变量private: //只能被本类的成员函数调用例如 setdata和display这两个方法可以调用 int num; double score; //每个学生公共的方法体public: //输入数据的方法 void setdata() { cin >> num >>原创 2021-03-01 19:05:24 · 739 阅读 · 0 评论