文档章节

C++ Properties set get

Industryy
 Industryy
发布于 2015/02/13 10:17
字数 170
阅读 341
收藏 1

// properties.h

#ifndef _PROPERTIES_H
#define _PROPERTIES_H
#define PROPERTY(t,n)  __declspec( property 
( put = property__set_##n, get = property__get_##n ) ) t n;\
typedef t property__tmp_type_##n
#define READONLY_PROPERTY(t,n) __declspec( property (get = property__get_##n) ) t n;\
typedef t property__tmp_type_##n
#define WRITEONLY_PROPERTY(t,n) __declspec( property (put = property__set_##n) ) t n;\
typedef t property__tmp_type_##n

#define GET(n) property__tmp_type_##n property__get_##n()
#define SET(n) void property__set_##n(const property__tmp_type_##n& value)

#endif /* _PROPERTIES_H */

// main.cpp

#include <iostream>
#include <math.h>
#include "properties.h"

class Vector2
{
    public:
        float x;
        float y;

    READONLY_PROPERTY(float, Length);
    GET(Length) 
    { 
        return sqrt((x*x + y*y));
    }
};

int main()
{
    Vector2 vec;
    vec.x = 1;
    vec.y = 1;
    std::cout << "Length of vector(" << vec.x << ", " << vec.y << ") = ";
    std::cout << vec.Length << "\n"; // <--- property, not a function call

    return 0;
}

The above code works with any Visual C++ version above 6.0. It does not need any additional dependencies -- as the section title states, it is a full example.


本文转载自:http://www.codeproject.com/Articles/118921/C-Properties

共有 人打赏支持
Industryy
粉丝 2
博文 13
码字总数 7500
作品 0
浦东
程序员
【转载】MSVCR100.dll和MSVCP100.dll的区别

MSVCR100.dll This msvcr100.dll is the Microsoft Visual C++ Redistributable dll that is needed for projects built with Visual Studio 2010. The dll letters spell this out. MS = Mi......

摩云飞
2012/10/24
0
0
用LuaBridge为Lua绑定C/C++对象

最近为了总结Lua绑定C/C++对象的各种方法、第三方库和原理,学习了LuaBridge库为Lua绑定C/C++对象,下面是学习笔记,实质是对该库的Reference Manual基本上翻译了一遍,学习过程中测试代码,...

shezjl
2015/10/26
0
0
用Eclipse+CDT+MinGW+SVN搭建跨平台的开发环境

Windows环境: 1、 安装Eclisp+CDT; 2、 安装MinGW,设置环境变量。例如: set path=%path%;D:"MinGW"bin set LIBRARY_PATH=D:"MinGW"lib set CINCLUDEPATH=D:"MinGW"include set CPLUSINCL......

iTeacher
2010/12/27
0
0
【转载】数据结构利器之私房STL

数据结构利器之私房STL 此系列的文章适合初学有意剖析STL和欲复习STL的同学们。 学过c++的同学相信都有或多或少接触过STL。STL不仅仅是c++中很好的编程工具(这个词可能有点歧义,用类库更恰...

悠米海
2012/12/02
0
0
VS2005无法使用debug模式

VS2005无法使用F5进行debug模式,Ctrl+F5能正常进入。 重装VS2005仍旧无法解决该问题。 虽然在解决方案配置中是DEBUG,但是我在程序中设置的断点进不去,网上一查终于明白了 其实问题在于,在...

_liusl
2013/07/10
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Spring IOC 之 注册 BeanDefinition

获取 Document 对象后,会根据该对象和 Resource 资源对象调用 registerBeanDefinitions() 方法,开始注册 BeanDefinitions 首先调用 createBeanDefinitionDocumentReader() 方法实例化 Bean...

职业搬砖20年
34分钟前
2
0
Pycahrm左边出现一些bookmark的取消方法

pycharm 左边出一个对号或则一个0,放上去提示Bookmark 取消方法:按F11

鹏灬
37分钟前
1
0
JDK1.8使用Dubbo时需注意

Dubbo自带的很多包都比较旧了,其中的javassist在JDK1.8上运行会报错 而且错误通常比较诡异,javassist是编辑和创建Java字节码的类库,常见的错误会从spring中报出 解决办法: <dependency>...

火龙战士
39分钟前
2
0
Java 对Oracle数据库中的 BLOB类型 插入图片

package test;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.PrintStream;import java.sql.Connection;import java.sql.DriverManager;......

青峰Jun19er
42分钟前
0
0
awk复习

10月22日任务 复习 awk调用外部变量 -v参数设置内部变量调用外部变量 [root@test awk]# a=44[root@test awk]# echo "ABCD" | awk -v GET_A=$a '{print GET_A}'44 更复杂的应用: [root@...

robertt15
49分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部