当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

在可管理C++中封装值类型

      有些时候,一些很简单的事情实现起来并不容易。例如,我们想让一个变量值显示在屏幕上。也许你知道在C++中怎么做,但在VC++6中,要用下面的方法实现:

    int x = 3;

    cout << "x is " << x << endl;

    就这么简单。不论你学的“C++入门课”怎样,我打赌你能发现的与这两行代码相似的东西不足你在课程中学到的10%,对吗?

    输出到屏幕

    现在,如果要在VC++.NET中创建可管理的C++程序该怎么做?下面是我创建的main():


    int _tmain(void)

    {

        // TODO: Please replace the sample code below

        //       with your own.

        Console::WriteLine(S"Hello World");

        return 0;

    }

    现在你可以把应用Cout的代码拷贝到main()中,在加入了include声明后,就可以执行:


    #include <iostream.h>

    // ...

        Console::WriteLine(S"Hello World");

        int x = 3;

        cout << "x is " << x << endl;

    这时,你会看到一个警告:


    warning C4995: '_OLD_IOSTREAMS_ARE_DEPRECATED':

    name was marked as #pragma deprecated

    解决的方法:借用STL中的IO流的代码,并且导入std 名称空间:


    #include <iostream>

    using namespace std;

    现在编译并运行这段代码。但是让我不解的是,在程序中发现作为cout应用的Console::WriteLine()。另外,Console::WriteLine很整洁。就像printf,它在字符串中使用占位符显示变量值应该放到哪。下面是一个c#控制程序中的代码:
    int x = 3;

    Console.WriteLine("x is {0}",x);

    {0}是一个占位符,第二个参数的值截止到占位符出现的位置。因此我想像在c#中一样,在可管理的c++程序中一直使用Console::WriteLine。但是如果你把代码直接拷到c++程序中,并将.改为::,程序不能通过编译。错误显示为:

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接