关于学习c++ primer plus可能会遇到的问题

为什么string是变量
答:string创建的是变量,所谓的字符串常量就是普通的字符串(又称字符串字面值),书中写到过,
一定要记住
藏得比较深的&用法
答:在进行输出的时候如果用到&typename,则这个地址调出来到流输出时默认使用其指向对应typename(类型)的指针


using 名称空间::需要调用名称和 名称空间::需要调用名称 的区别在于前者是声明,一次声明,永久有效;后者是一次性的,只能在那一行起效。


使用new运算符得到的是指针,所以其值只能赋给指向对应类型的指针

声明的不同对象进行调用函数所调用的函数都是公用同一个的

构造函数并不是无需多余的函数体直接使成员数据初始化,应该如下编译(构造函数在类对象声明的时候就会自动调用)
class boff
{
    std::string ni;
    int ta;
    char ha;
    void siyoulei();
public:
    boff(const std::string& ni_daiti, int da = 0, char za = 0);
    void usediaoyong();
};
boff::boff(const std::string& ni_daiti, int da, char za)
{
    std::cout << "daioyong";
    ni = ni_daiti;
    ta = da;
    ha = za;
}
void boff::usediaoyong()
{
    std::cout << ni;
    std::cout << ta;
    std::cout << ha;
}

void boff::siyoulei()
{

}
int main()
{
    boff chad = boff("cccccc", 5, '6');
    chad.usediaoyong();
    

}


析构函数没有参数,所以原型必须为~类名(  );
可以隐式调用构造函数,比如说类名 对象名{初始化};
const成员函数,例子:void show(  ) const   其作用是保证函数不会修改调用对象;
this是指针,指向对象的地址,即使用*this可以当作对象的别名
作用域为类的枚举 例子:enum class 名称{      };(作用在于防止不同的枚举定义存在同个名字的枚举量而冲突)

使用结构函数时,即初始化对象


隐式调用构造函数的方式 例子:Stock garment("furry",50,2.5);  其与显式:Stock garment=Stock("furry",50,2.5); 等价

有两个既熟悉又陌生的运算符 ->* 和 .*

友元函数的声明应在类内声明

!!!!!!友元函数访问私有成员变量,但是不能直接在定义友元函数时调用私有成员变量,只能通过引用类对象的成员参数方式调用
例子:
#include <iostream>
 
using std::ostream;
 
class CFriendClass
{
public:
    CFriendClass();
    ~CFriendClass();
 
    friend int getValue(CFriendClass &friendObject);
    friend ostream & operator<<(ostream &os, const CFriendClass &friendObject);
 
private:
    int value;
};
using std::cout;
using std::endl;
 
CFriendClass::CFriendClass() :value(66)
{    
}
 
int getValue(CFriendClass &friendObject)
{
    //友元函数访问私有成员变量,但是不能直接在定义友元函数时调用私有成员变量,只能通过引用类对象的成员参数方式调用
    cout << "getValue value==" << friendObject.value<<endl;
    return friendObject.value;
}
 
ostream & operator<<(ostream &os, const CFriendClass &friendObject)
{
    //友元函数访问私有成员变量,但是不能直接在定义友元函数时调用私有成员变量,只能通过引用类对象的成员参数方式调用
    os << "operator friendObject.value==" << friendObject.value << endl;
    return os;
}
 
CFriendClass::~CFriendClass()
{
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值