问题总结

1.C++类的构造函数和析构函数,可以写在外面:

#include <iostream>
using namespace std;
class String{
    char *str;
    int Num[20];
    int Count;
public:
    String(char *s);
    ~String();
    void Process();
    void Show();
};
String::String(char *s) {
    if(s){
        str= new char [strlen(s)+1];
        str= strcpy(str,s);
    }else{
        str = 0;
    }
    Count = 0;
}
String::~String() {
    delete [] str;
}
void String::Process() {
    int i=0,n;
    char *p= str;
    while (*p){
        while(*p>='0'&&*p<'9'&&*p){
            n=n*10+(*p-'a');
            p++;
        }
        Num[i++]=n;
    }
    Count = i;
}

2.C++的可以换行写,不影响编译:

#include <iostream>
using namespace std;
int main(){
    int a[15]={1,2,3,4,5,6,7,
               8,9,0,1,2,3         //这么写没毛病
            ,4,5};
    for (int i=0;i<15;i++){ cout<<a[i]<<endl; }
            //一句话的代码建议这么写,考试时候看起来方便,括号不至于太多
    return 0;
}



3.重载函数的类外实现

#include <iostream>
using namespace std;
class Complex{
    float Real,Image;
public:
    Complex(){Real=0;Image=0;}
    Complex(float r,float i){Real=r; Image=i;}
    void Print(){
        cout<<Real;
        if(Image>0){cout<<"+";}
        if(Image!=0){cout<<Image<<"i";}
        cout<<endl;
    }

    Complex operator=(Complex c){
        Real = c.Real;
        Image = c.Image;
        return *this;
    }

    Complex operator,(Complex c);
};

Complex Complex::operator,(Complex c){
    Complex t;
    t.Real = Real;
    t.Image = Image;
    return t;
}
int main(){
    Complex c1(3.4,5.6),c2(10.5,-12.3),c3;
    c1.Print();
    c2.Print();
    c3=(c1,c2);
    c3.Print();

    return 0;
}



4.字符串输出问题:

#include <iostream>
using namespace std;

int main(){
    char s[]="Rep\0ch";
    int m=sizeof(s);
    cout<<"m="<<m<<endl;
    cout<<"输出字符串:"<<endl;
    for (int i=0;i<sizeof(s);i++){
        cout<<s[i]<<endl;
    }
    return 0;
}

输出的结果是:

m=7
输出字符串:
R
e
p
♦️
c
h
♦️


Process finished with exit code 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值