<C++命名空间> 2018/01/05

代码:
#include <iostream> using namespace std; // 命名空间 /* 上节的内容: 1.输入输出 cin cout 2.函数: 重载 函数名相同 参数不同 缺省 参数默认值 : 1)和重载一起写的时候 可能会有二义性 2)只能从右往左缺省 3.引用 不占内存 和原变量(指针的区别) 类型 & 4.内存申请释放:new delete 指针类型 int *p = new int[10]; // char *q = new int[10]; // 错误的 // int **pp = new int*[10] 申请10个int* 今天内容 1.命名空间 管理方式 管理类型 数据 函数 -->fun 可以写重载 几个人写同一个函数 不一定构成重载 --> 重定义 命名空间: 你定义一个命名空间 A 我定义一个命名空间 B A::FUN B::FUN 使用的时候: ::域名解析符 1)命名空间::函数 2)使用using 命名 比如想要用 cin using std::cin; // (相当于声明)表示后面要用到cin就是std中的cin 3)前面加一句using namespace 命名空间的名字;后面直接使用命名空间中的变量或者函数 方案三 最简单 但是方案三 它会暴露里面所有的函数和变量(失去命名空间的意义) PS:C/C++ 头文件的不同 C++ 头文件不加.h iostream string C语言头文件加了.h -->stdio.h 在C++中写:cstdio 不要.h 文件名前面加c 2.命名行参数() 简单点说 mian的参数(只有两个) int argc 整数(后面字符串数组中字符串的个数) char*agrv[] 字符串(指针)数组 第一个字符串必定是exe的位置 如果是传递参数 传递参数的形式 传递的参数是什么 2.1直接将一个txt拖到exe上 两个 第一个字符串是exe的位置 第二个字符串是txt的位置 2.2直接将exe拖到cmd窗口 然后直接输入字符串 2.3....直接cd 找到文件位置 调用 ... 3.框架 创建一个非空项目 新增的文件: // stdafx.cpp : 只包括标准包含文件的源文件 // test.pch 将作为预编译头 // 预编译文件 预处理部分出了问题 比如头文件重复包含 // stdafx.obj 将包含预编译类型信息 // obj 编译时候出了问题 函数重定义 变量重定义 #include "stdafx.h" // 关于stdafx.h 如果在创建项目时候 有这个头文件 cpp中一定要加上这个头文件 // 如果加 一定放cpp最前面(需要加的时候 没有加 会有提示) // 如果提示没有这个头文件 不管 */ //==================================命名空间============================= namespace A // 命名空间 { void fun(){ cout << "danny" << endl; } } namespace B { void fun(){ cout << "ouguang" << endl; } } void fun(int a){ cout << a << endl; } void fun(float a){ cout << a << endl; } void fun(double b,int x = 0,int y = 0){ cout << b << endl; } // 缺省 + 重载 (有二义性) //===================================主函数=============================== int main() { #if 0 //===================命名空间==================== // 方案一 A::fun; B::fun; // 方案三 using namespace A; fun(); #endif fun(3.14); // 二义性 fun(3.1565, 2); /* 某个函数 重定义 函数名相同 参数不同 -> 会认定为两个函数(编译器) 重载 本身是不同函数 编译器 */ // cout << "你好!" << endl; return 0; }

测试项目:

// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

// 选预编译头  没有选空项目
//  _TCHAR unicode
// 字符集 编码方式  unicode  一个字符  一个字节
// 多字节字符集 用的宽度字符 wchar 一个字符两个字节
// char 只能保存 128个字符  外文字符
//extern int x;
int _tmain(int argc, _TCHAR* argv[])  // 多字节字符集中  _tmain 等价 main _TCHAR 等价 char
{
    //x = 0;
    //printf("%d\n", x);

    if (argc >= 2)  // 先判断  如果说 >=2  至少有一个参数
    {
        // 假设推进来是txt文档(文本文档)
        FILE *fp;        // 定义文件指针
        fp = fopen(argv[1], "r+");   // 只读打开
        // 读取内容  并且打印出来
        char ch;
        while ((ch = fgetc(fp)) != EOF)
        {
            printf("%c", ch);   // 打印
        }
        fclose(fp);    // 关闭文件
    }

    getchar();
    return 0;
}
// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
//

#pragma once  // 防止头文件重复包含

#include "targetver.h"

#include <stdio.h>   // C语言标准头文件
#include <tchar.h>   // TCHAR定义



// TODO:  在此处引用程序需要的其他头文件

 

// stdafx.cpp : 只包括标准包含文件的源文件
// test.pch 将作为预编译头            // 预编译文件  预处理部分出了问题  比如头文件重复包含
// stdafx.obj 将包含预编译类型信息    // obj 编译时候出了问题  函数重定义 变量重定义

#include "stdafx.h"  // 关于stdafx.h  如果在创建项目时候 有这个头文件 cpp中一定要加上这个头文件
// 如果加 一定放cpp最前面(需要加的时候 没有加 会有提示)
// 如果提示没有这个头文件 不管

// TODO:  在 STDAFX.H 中
// 引用任何所需的附加头文件,而不是在此文件中引用


int x;

 

posted @ 2018-01-10 18:59  让优秀成为一种习惯  阅读(173)  评论(0编辑  收藏  举报