C++ Primer 3ed 学习笔记

Posted freshui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 3ed 学习笔记 相关的知识,希望对你有一定的参考价值。

 
C++的内置数据类型和标准库类之间的类型是符合类型,如:指针和数组类型。C++对数组提供了内置支持,但是仅限于对数据则单个元素的读写,对整个数组的操作则不支持(如用一个数组赋值给另一个数组)
数组名是一个指针,但是常量指针
 
2.1 为什么内置数组类型不支持数组之间的赋值。支持这种操作要什么信息?
答:数组名是一个常量指针,可以将数组赋值给一个指针变量,但是常量之间不能赋值。支持赋值操作至少在编译器操作数组的时候直到数组的长度。
2.2 你认为作为一等公民的数组应该支持什么操作?
数组初始化
数组比较
数组赋值
数组大小查询
数组索引范围检验等
 
 
静态与动态内存分配的两个主要区别:
1、 静态对象是有名字的变量,可以直接对其操作。动态对象是没有名字的变量,只能通过指针简介对其进行操作
2、 静态对象的分配与释放由编译器自动处理,不需要程序员处理任何事情。动态对象的分配与释放,必须由程序员显示的给出,有new和delete表达式完成,通常这两个表达式要配对使用。
 
2.3
a) 静态分配对象,对象名字为 ival
b)pi是一个指针,其中保存的是整形变量ival的地址
c) pi2是一个指针,指向动态分配的一个报存int类型数据且值为1024的内存块
d) pi3是一个指针,指向动态分配的一个保存1024个整形数据的起始地址
 
2.4
while循环中的*pi就是10,因此循环变成10<10 循环体将一次都不执行。同时,如果循环体执行的话,pia[*pi]=pia[10],这也是一个错误,不过因为while的条件限制,这个情况是不会发生的。
 
 
类的重载操作符,注意重载后要注意函数返回值要不要用引用,因为只有引用才可能用于左值。
 
2.5
//  test.cpp : 定义控制台应用程序的入口点。
//

#include 
< iostream >
using   namespace  std;

class  Matrix
{
private:
    
float **data;
    
int col;
    
int row;
public:
    
//---member function for init matrix
    Matrix(int col=0;int row=0);// default constuctor
    Matrix(float **dt);
    Matrix(
const Matrix &Mtx);
    Matrix
& operator=(const Matrix &Mtx);

    
int getCol() const;
    
int getRow() const;
    
float operator()(int x,int y) const// index operator,this is read only member function
    float& operator()(int x,int y);      // this can modify the member data

    
virtual ~Matrix();

}


class  Date
{
private:
    
int year;
    
int month;
    
int day;
public:
    Date(
int year=0,month=0,day=0);
    Date(
const Date &dt);
    Date
& operator=(const Date &dt);

    
bool operator==(const Date &dt);
    
bool operator!=(const Date &dt);

    
int getYear() const;
    
int getMonth() const;
    
int getDay() const;

    
void addDay(int);
    
void addMonth(int);
    
void addYear(int);

    
virtual ~Date();

}
;

 

2.6 第一个需要,第二个不需要

2.8
成员函数是一种函数
构造函数是一种成员函数
飞机是一种交通工具
圆形是一种几何图形
正方形是一种矩形 

2.9
rotate():可以定义为虚函数
print(): 可以定义为虚函数
size():  可以共享,所有类中
dateBorrowed():可作为虚函数
rewind(): 独自
borrower():独自
is_late():独自
is_on_loan():独自
 
2.10
类对自己和别的类的关系也不能搞的太绝对,不应该对外界一视同仁,应该有个亲密关系的,所以protected很必要

以上是关于C++ Primer 3ed 学习笔记 的主要内容,如果未能解决你的问题,请参考以下文章

C++ Primer学习笔记

C++ primer puls 学习笔记

C++ Primer 0x06 学习笔记

C++ Primer 0x05 学习笔记

C++ Primer学习笔记

C++ primer plus 第二章学习笔记