C++基础语法

简介:
C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。
所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
对语言本身而言,C是C++的子集,那么是什么样的一个子集?从上文可以看出, C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。
再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。
所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。

  1. c语句是面向结构的语言,c++是面向对象的语言,C++从根本上已经发生质飞跃,并对c进行丰富的扩展。
  2. c是c++的子集,所以大部c语言程序都可以不加修改的拿到c++下使用。
  3. c++不完全同于C语言,C语言,可以完全植入c++文件(变量,指针,变量,循环,内存等)
  4. c++不完全兼容C
  5. C 语言函数名是不能重名的,但在C++中,函数名可以重复,就叫做函数的重载
#include <iostream>

using namespace::std;
int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";

    int a=25;
    std::cout << "I am a so bad man" << a <<std:: endl;
    std:: cout << 'a' <<5<<std::endl;

    cout <<88;
    cout <<endl;
    cout << 88<<endl;

    int x=100;
    char y='c';

    //输入
//    cin >>x>>y;
//    cout <<x<<y;

    bool b=true;
    b=false;



    //字符串(对象)比较
    std:: string str="hello world";
    string str2="hello";
    cout <<str.compare(str2)<<endl;
    //字符串的增删改查
    //增
    str.append(str2);
    //删
    str.erase(3,4);
    //修改
    str.replace(1, 2, str2);
    //查子串
    str.find(str2);
 cout <<str.find(str2)<<endl;

    return 0;
}

1.std 是一个命名空间..
不同的命名空间可以有相同的类名被定义 ..
using namespace std;
就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的
也可以在全局空间中定义,只要名字空间不一样即可..)..
否则可以默认名字空间中有std.便不用std::来修饰
它是C++新标准中有的,解决多人作编大程序时名字冲突问题。比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人

2.cout
C++编程语言互换流中的标准输出流,需要iostream支持。读为 “c out([si:‘aʊt]”

#include<iostream>
using namespace std;
int main()
{
    int a;
    cout << "请输入一个数字,按回车结束" << endl;
    cin >> a;
    cout << a << endl;
    return 0;
}
//用户输入的数字由cin保存于变量a中,并通过cout输出。
#include<iostream>
using namespace std;
int main()
{
    cout << "Hello,World!" << endl;
    return 0;
}//HelloWorld示例

后来随着学习的深入,总算大概明白了cout/cin/cerr/…的鬼把戏:那些东东不过是变着法儿“哄人”,其实说到底还是函数调用,不过这函数有些特殊,用的是运算符重载,确切地说(以下还是以cout为例)是重载了“<<”运算符。我们就让它现出函数的本来面目,请看HelloWorld!的等效版本:

#include<iostream>
using namespace std;
int main()
{
    cout.operator << ("Hello,World!");
    cout.operator << (endl);
    return 0;
}

上面程序应该更容易理解了:cout是一个ostream类的对象,它有一个成员运算符函数operator<<,每次调用的时候就会向输出设备(一般就是屏幕啦)输出东东。嗯,这里有一个问题:为什么函数operator<<能够接受不同类型的数据,如整型、浮点型、字符串甚至指针,等等呢?
我想你已经猜到了,没错,就是用运算符重载。运算符函数与一般函数基本无异,可以任意重载。标准库的设计者们早已经为我们定制了iostream::operator<<对于各种C++基本数据类型的重载版本,这才使得我们这些初学者们一上来就享受到cout<<”Hello,World!”<

class MyOutstream
{
    public:
    const MyOutstream& operator << (intvalue)const;//对整型变量的重载
    const MyOutstream& operator << (char*str)const;//对字符串型的重载
};
const MyOutstream& MyOutstream::operator<<(intvalue)const
{
    printf("%d",value);
    return* this;//注意这个返回……
}
    const MyOutstream& MyOutstream::operator << (char* str)const
{
    printf("%s",str);
    return* this;//同样,这里也留意一下……
}
MyOutstream myout;//随时随地为我们服务的全局对象myout
int main()
{
    int a=2003;
    char* myStr="Hello,World!";
    myout << myStr << "\n";
    return 0;
}

参考:
http://baike.baidu.com/view/1261354.htm

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值