关于模版一个问题的测试

OpenGL核心技术之模版测试 笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,优快云社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。优快云课程视频网址:http://edu.youkuaiyun.com/lecturer/144 上节给读者介绍了深度测试,本节介绍一下模版测试,模版测试跟深度测试是不同的,GPU都会执行片段 阅读详情
那天写模版类时遇到了一个问题,现在记录下来备忘.
环境:Windows 2k3 sp1 + Mingw(gcc 3.4.2)

/* ========================================================================== */
/*                                                                            */
/*   main.c                                                                   */
/*   (c) 2006 ShellEx                                                         */
/*                                                                            */
/*   Description : 关于模版的测试                                              */
/*                                                                            */
/* ========================================================================== */
#include 
<iostream>
using namespace std;

///////////////////////////////////////////////////////////////////////////////
//基类
template <class TElem>
class Base
{
public:
    
virtual long GetData(void){return data;};
    Base(void)
{data  = 1;};
protected:
    
long data;
}
;

///////////////////////////////////////////////////////////////////////////////
//派生类
template <class TElem>
class Child : public Base <TElem>
{
public:
    
virtual void Print(void)
    
{
        printf(
"Data = %d ", data);
    }
;
}
;

///////////////////////////////////////////////////////////////////////////////
int main()
{
    Child 
<int>a;
    a.Print();
    printf(
"getData=%d", a.GetData());
    
return 0;
}



编译:
g++ main.cpp -o main.exe
编译提示如下错误:
main.cpp: In member function `virtual void Child<TElem>::Print()':
main.cpp:34: error: `data' undeclared (first use this function)
main.cpp:34: error: (Each undeclared identifier is reported only once for each f
unction it appears in.)

data明明是基类的成员,为何派生类Child的成员函数Print不能访问他(基类成员函数GetData是可以访问他的)?data难道不是被继承下来了么?
通过Wing老师的指点,解决方法如下:
把Print函数里的len改成this->len
原因是由于是模版,所以不确定会有多少个类似对象,编译器不知道len到底是哪种实例化对象的成员,所以用this指针就可以确保使用的是实例化后的对象,指向的是当前对象,保证唯一性.
同时感谢好友禿頭孤鳥的帮助.

 
OpenGL学习笔记:模版测试 模版测试的作用就是给我们提供一种可以控制片段绘制的方法,让我们的绘图更为灵活。本节中绘制边框的例子的设计思想也很容易理解,具体可以看下面代码的中文注释。 原版教程中有这么一句话:“我们将模板函数设置为GL_NOTEQUAL,它会保证我们只绘制箱子上模板值不为1的部分,即只绘制箱子在之前绘制的箱子之外的部分。注意我们也禁用了深度测试,让放大的箱子,即边框,不会被地板所覆盖。” 他的想法我理解,可为什... 阅读详情

相关推荐

Unity Shader 学习14:模版测试 与 深度测试

核心:当前模版缓冲区中的值和 准备渲染的物体的模版参考值(我们设的)的比较默认情况下 只有通过比较才会渲染像素,否则抛弃。1. 概念 ① 比较 这个比较可以用 大于等于小于不等于这些方式,或者直接了当地不管三七二十一,设为 永远通过 或者 永远不通过。② 更新 而模板测试结束时,可以分别选择在 通过或者没通过 的情况下,对当前缓冲区的值做不同的更新操作,比如默认情况就是,在通过时 替换 (replace) 缓冲区的值为物体的参考值。

weixin_63623077的博客 952

Qt报错:In member function ‘virtual void DoubleSlider:.mousePressEvent(QMouseEvent*)“:

Qt报错

m0_55776553的博客 628

软件测试用例设计的指南:从模版到实操

希望通过本文,您能对测试用例的设计有一个系统的了解,尤其是在实际操作中的流程。给大家准备了两种版本的测试用例模板,仅供参考。

software_test010的博客 2016

c++ 关于前向引用的错误使用问题

今天在调试一个demo 程序: #include <stdlib.h> #include <stdio.h> #include <math.h> class Result; class MathCallBack { int ops1,ops2; int result; public: void Add(int a,in...

xingji041的专栏 4035

模版测试 Stencil 简介,及在 Unity 中的应用

1 什么是模版测 首先了解图形渲染管线,如下图: 模版测试是GPU渲染流水线中的一个环节,在片元着色器之后的逐片元操作过程中执行。在透明度之后,深度测试之前。 模版测试通过模版值进行相应操作,默认的模版值是0,是范围0-255的8位数。 模版测试通过比较操作来决定片元是否渲染,以及如何更新模版值。参考值 Ref 和当前模版值 Mask ...

关于程序员的故事 1472

Mac中Twig模版安装与SSTI漏洞学习

学习SSTI的一些列心得体会,望对大家有用。

2302_81156108的博客 1724

24-经典问题解析二

注:博客中内容主要来自《狄泰软件学院》,博客仅当私人笔记使用。 测试环境:Ubuntu 10.10 GCC版本:9.2.0 一、关于析构的疑问 当程序中存在多个对象的时候,如何确定这些对象的析构顺序? 1)单个对象创建时构造函数的调用顺序——1、2、3 1、调用父类的构造过程(后续课程中讲解) 2、调用成员变量的构造函数(调用顺序与声明顺序相同) 3、调用类自身的构造函数 先父母——在客人——后自己 ...

第一大剑豪——索隆 505

解放双手!利用海康VM全局脚本+通讯管理打造自动化视觉控制系统

本文深入探讨了如何利用海康VisionMaster(VM)的全局脚本和通讯管理功能,打造高效自动化视觉控制系统。通过全局变量实现数据共享与动态调整,结合多协议通讯管理,提升系统响应速度与智能化水平,适用于工业4.0环境下的复杂视觉检测与决策场景。

weixin_28720573的博客 424

C++继承相关知识点总结

1:派生类继承基类的成员并且可以定义自己的附加成员。每个派生类对象包含两个部分:从基类继承的成员和自己定义的成员。 每个派生类对象都有基类部分,包括基类的private成员。类可以访问共基类的public 和 protected 成员,就好像那些成员是派生类自己的成员一样。派生类不能访问基类的 private 成员。也就是说,虽然派生类继承了基类的私有成员,但是不可访问。比...

weixin_30246221的博客 221

2023东华大学机试OJ进阶版1-81题

先排序。每次找两个最小的数,把其中一个置为两数之和,并累加这个和值,另一个数置为-1,然后再排序,重复操作,直到只剩下一个数。105。

m0_49263811的博客 2794

Kill5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题

Kill5-5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题 问题简要描述: 昨日更新了keil5软件的版本,从5.17更新到了5.37版本,然后编译STM32项目文件时,软件提示编译报错。报错问题如下: Build started: Project: QKsoftware *** Using Compiler 'V6.18', folder: 'E:\MDK-ARM\ARM\ARM\ARMCLANG\Bin' Build target 'QKsoftware' compiling

weixin_43644424的博客 1万+

C++查漏补缺

1、常量有前缀和后缀 前缀:0x,0 后缀:U,L 2、thread_local 存储类 使用 thread_local 说明符声明的变量仅可在它在其上创建的线程上访问 3、引用: 引用变量一个别名,也就是说,它是某个已存在变量的另一个名字。 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。...

xiaoshixiu的专栏 993

第三方系统(异构系统)基于token身份认证方式访问Ecology9的Restful接口Ecology9服务器配置部分

通过Token的认证方式调用Ecology9系统Restful业务接口服务器配置部分

svsou的专栏 2173

关于C++模版一个问题的测试

那天写模版类时遇到了一个问题,现在记录下来备忘.环境:Windows 2k3 sp1 + Mingw(gcc 3.4.2)/* ========================================================================== *//* ……...

钢窟. 185

HEVC/VVC中R-Lambda码率控制算法原理

文章目录1. 比特分配1.1 GOP级比特分配1.2 帧级比特分配1.3 LCU级比特分配2. 码率控制2.1 λ的计算和更新2.2 参数QP的确定 VVC中码率控制算法沿用了HEVC中经典的R-λ码率控制模型,R-λ由中科大的李斌博士提出(详情参考JCTVC-K0103)。R-λ模型的基础为视频编码中 R(比特 bpp)和 D(失真 MSE)之间的双曲线模型,即 D(R)=CR−KD(R) = ...

Aidoneus_y 6136

vivado Block Design 设计 .tcl 文件使用,导出,修改,添加方式

在vivado中生成 Block Design可以导出tcl文件进行保存(体积小),或者在别的版本vivado中打开(版本互通),这是一个非常好的功能。另外GitHub中很多项目都是采用这种方式上传的,学会如何使用可以快速修改历程项目。

2203_75345038的博客 2493

Python自动化测试报告模版

然而,你也可以使用HTML、Word或专门的测试报告工具(如Allure、Robot Framework的Report等)来生成更复杂的测试报告。在Python自动化测试中,生成详细且结构化的测试报告是非常关键的,它不仅帮助团队成员理解测试结果,还能在问题追踪和性能优化中发挥重要作用。通常包括报告的标题、生成时间、测试环境信息(如操作系统、浏览器版本、数据库信息等)、测试版本、测试人员等基本信息。列出所有执行的测试用例,包括用例编号、用例描述、预期结果、实际结果、执行结果(通过/失败/阻塞)等信息。

804

Claude Code 错误解决方案 API Error: 前缀通用错误

本文分析了Claude Code与Anthropic API通信时出现的通用错误处理问题。当API返回未分类错误时,系统会直接显示"API Error: "前缀的原始错误信息。通过错误链路追踪发现,这是由于未匹配特定错误类型时触发了通用兜底处理逻辑。文章提供了三种解决方案:查看具体错误内容、启用调试日志以及提交问题反馈,并建议用户关注错误码、使用/compact命令处理上下文超限问题。最后强调这些未分类错误是预期行为,用户应通过错误消息中的线索自行排查或反馈开发者。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1344

记一次FileNotFoundException异常

  同事提交了代码,就回去过春节了,今天,业务人员来说他昨天修改的东西有问题,要我处理。看了下日志,发现是这个很easy的异常 java.io.FileNotFoundException: \excel-templates\123 (系统找不到指定的路径。)   看错误信息,就知道是xls的模版在服务器上没有被程序获取到,又看了下git上是有的,那绝壁是运维哥哥的锅了。   果断吊运维去...

卖克的专栏 2542

YOLOv8+BiFPN双向特征金字塔:多尺度目标检测精度提升28%的实战教程

双向特征金字塔网络(BiFPN)是一种强化多尺度特征融合支持“自顶向下+自底向上”的双向特征流动,同时保留不同尺度的细节信息;引入加权融合机制,自动学习不同特征的重要性权重;裁剪冗余节点,在轻量化的同时提升融合效率。

m0_64661770的博客 492

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

算是一个无源无汇上下界网络流的模版

Time Limit: 5 Seconds      Memory Limit: 32768 KB      Special Judge The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear reactor to produce pluto

427

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OpenGL-17-01-模版测试

OpenGL-17-01-模版测试 基本说明 模版测试执行时机:当片段着色器处理完一个一个片段后,模版测试就会进行。 模版测试和深度测试一样,是有可能丢弃片段的。 模版测试是根据模版缓冲进行的。 如何使用模版测试 通过这行代码启动模版测试 glEnable(GL_STENCIL_TEST); 注意,和颜色和深度缓冲一样,你也需要在每次迭代之前清除模板缓冲。 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

韩天衣的博客 321

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OpenGL GLFW 深度/模版测试 面剔除 混合与帧缓冲

设置深度函数为GL_LESS就可以解决。即使A,B同时通过片元着色器的判断,由于深度测试和深度写入是。

awsl_tsl的博客 1399

翻译一遍官方的stencil模版测试文档,且阅且珍惜,

像我这么优秀的人,他妈的不理解stencil,然后就傻逼一样翻译一遍,人生第一次翻译官方文档,处女作。让我感觉到又回到了考试的年代英汉互译!今晚会不会做噩梦呢哈哈哈~ 英文水平有限,先试试火~ 我听说官方的stencil很敷衍,但不影响我翻译它的热情~~ 官方链接请点这里 正文: ShaderLab: Stencil shaderlab 模版测试 The stencil buffer can b...

笔记001 1437

小学生体测测试环境怎么填_学生体测模版填写说明

测试信息模版,测试信息模版共九列:年级编号、班级编号、班级名称、项目名称、测试老师、测试时间、测试地点、测试器材、测试方式(手工/仪器)。其中年级编号、班级编号、班级名称、项目名称不需要您填写,系统会根据您的班级和测试项目设置自动生成,其它列填写方式如下:序号列名称备注1测试老师填写测试老师的真实2测试时间格式为日期格式,年份-月份-日期(或年/月/日),例如:2001-3-143测试地点填写实际...

weixin_29838739的博客 5189

UI中通过模版测试形成遮罩

Properties//主贴图//Blend 混合效果// 模版测试变量)]_Comp("Comp",int)=0StencilOp)]_Pass("Pass",int)=0//变灰按钮SubShaderTags{"Queue"="Transparent"} //半透明渲染队列Blend [_SrcBlend] [_DstBlend] //透贴效果的实现 SrcAlpha 和 OneMinusSrcAlpha//模版测试。

2401_83878847的博客 1259
上一篇: 没错,这个是在52shell.com看到的........
下一篇: 测测您的能力:微软程序员测试题
ShellEx
博客等级 码龄21年 4粉丝 43原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值