零基础C++入门第一天
由于C++跟JAVA相似的地方太多啦,入门的话除了函数跟指针鄙人还没有看到任何值得记录的内容,因此第一天的记录就只有函数跟指针。
1. 函数
没有类似java的public private访问控制关键字,只是简单的返回值类型 + 函数名称。
项目入口是一个简单的main函数:
int main( ){
return 0;
}
如果要打印简单的字符串Hello World:
#include <iostream> using namespace std; int main(){ string helloWorld = "Hello World"; cout <<"Hello World" << endl; cout <<helloWorld<< endl; return 0; }
上面的代码cout应该读成c(C++/C) out(输出),endl应该读成end line。而<<似乎是输出专用的符号,相对>>用作输入符号。上面的两行cout开头代码均打印 Hello World。
如果要使用自定义函数:
如果不在使用函数的main方法前声明或者定义函数,那么在main函数里将无法使用add跟subtract函数。
下面的代码黄色的是声明函数的语法(暂且这么理解),虽然在main函数下面完整定义了add函数但是不事先声明的话,直接在main里面写add会提示找不到这个函数。如果需要引用其他文件的函数,除了写#include文件名.h也是需要将该文件中需要用到的函数在main函数上方声明,看上去很像是一个JAVA的抽象方法(因为没有函数体)。
下面的绿色代码是在main函数前定义函数,这样也可以避免main函数找不到方法函数的情况。
#include <iostream> using namespace std; int add(int a, int b); int subtract(int a, int b){ return a-b; } int main(){ add(1,1); subtract(2,1); } int add(int a, int b){ return a+b; }
2. 指针
int main(){ int age = 24;
int *pAge = &age; cout<< &age<<endl; ======> 输出0x7ffeef321a88 ===>意味着&age是一个指针
cout<< *&age<<endl; =====> 输出24 ===>使用*取出指针所指向的int值
cout<< *pAge<<endl;======> 输出24 ===>使用*取出指针所指向的int值
cout<< pAge<<endl; ======> 输出0x7ffeef321a88 ===>意味着pAge是一个指针
return 0; }
3. 类
类是数据以及修改数据的方法的图纸。
class Book{
public:
int pages;
string title;
string author;
Book(){
pages = 0;
title = "unknown";
author = "anonymous";
}
Book(int pages,string author,string title){
cout<< "Creating a new book!"<<endl;
Book::pages = pages;
Book::author = author;
Book::title = title;
}
bool authorIsSteve(){
if(author=="Steve"||author=="steve"){
return true;
}
return false;
}
int getPages() const {
return pages;
}
void setPages(int pages) {
Book::pages = pages;
}
const string &getTitle() const {
return title;
}
void setTitle(const string &title) {
Book::title = title;
}
const string &getAuthor() const {
return author;
}
void setAuthor(const string &author) {
Book::author = author;
}
};
跟JAVA一样也有构造方法(只在拿着图纸创建真正的Book的时候才会被调用的函数)
与JAVA以及JAVASCRIPT不同的是没有this dot了,取而代之的是类名::,上面的是Book::title取代了this.title
除此之外让人奇怪的是const string &的写法
4. 继承
class FancyBook : public Book{ public: string authorIsSteve(){ if(getAuthor()=="Steve"||getAuthor()=="steve"){ return "yes"; } return "no"; } };
上面是一个简单的继承Book类并且重写authorIsSteve函数的新类。

浙公网安备 33010602011771号