那个ps放大选中区域模式可以选吗?选了会有什么影响

对不起,您访问的页面不存在!
用户名/邮箱
两周内免登录大学选修课一门没选上会不会有什么影响?可以大二修吗?_百度知道
大学选修课一门没选上会不会有什么影响?可以大二修吗?
我有更好的答案
可以的,每学期都有的,但是你得确保下次一定得选上,因为每学期还有学分影响的,加油吧
那下学期是不是可以多修一门把学分补回来?
正常情况下一学期有一门啊,不过每学期都有,四年内修满规定学分即可,不必太担心。顶一下吧
正常应该可以 选修课是影响学分的
这个完全可以,每学期末都会选择下学期的课程,可以选一到三门,在毕业之前修够规定的学分就可以了
其他类似问题
为您推荐:
您可能关注的推广
大学选修课的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我在网上开通了工行基金定投,选择的是前端收费,现在我想改成后端收费该怎么操作呢,会有什么影响吗?_百度知道
我在网上开通了工行基金定投,选择的是前端收费,现在我想改成后端收费该怎么操作呢,会有什么影响吗?
提问者采纳
您好!前后端收费模式在您基金定投确认后不得进行修改。若您需要修改前后端收费模式,您可以撤消基金定投协议签订后重新签订。基金定投协议签订撤消手续:
您可以进入个人网上银行,选择“网上证券”-“网上基金”-“基金交易”-“基金定投管理”来撤消。基金管理公司确认(T+2)后,定投计划停止,系统停止扣款。
申请当天,投资人不能办理基金定投申购业务退出申请。
其他类似问题
为您推荐:
您可能关注的推广
基金定投的相关知识
下载知道APP
随时随地咨询
出门在外也不愁当前位置:
调用虚拟函数,持续化视图状态,POD 类型概念
调用虚拟函数,持续化视图状态,POD 类型概念
发布日期: 11:47
浏览次数:4567次
标  签:C++,MFC
文章评分:5.0
操  作:
称号:未设置简介:...
文章概要:
调用虚拟函数;
在 C++ 中,无法从某个类的构造函数中调用派生的虚拟函数,因为虚表还没有完全建立。但是在C#中好像就可以,是这样吗?为什么会有这种差别呢?
持续化视图状态;
在 2004 三月的专栏中,你展示了如何改变文件打开对话框的最新视图状态设置,但没有涉及到保存这个用户使用的最新视图设置。我遇到的问题是读取用户已有的打开文件对话框设置。我只找到直接读取列表框信息的方法,但当用户选择缩略图模式时,那样做不能得到正确的信息。对此你有没有解决办法?
POD 类型概念;
偶尔在一些文字资料和 C++ 文档以及 Microsoft .NET 框架中看到术语“POD 类型”。这个术语是什么意思?
1.调用虚拟函数
2.持续化视图状态
3.POD 类型概念
在 C++ 中,无法从某个类的构造函数中调用派生的虚拟函数,因为虚表还没有完全建立。但是在C#中好像就可以,是这样吗?为什么会有这种差别呢?
Clifton F. Vaughn
确实如此,在这个方面 C# 与 C++ 是有差别的。在 C++ 中,如果你从构造函数或者析构函数中调用虚拟函数,编译器调用的虚拟函数是定义在这个正在被构造的类实例中的(例如,如果从 Base::Base 中调用 Base::SomeVirtFn ),不是最底层派生的实例(the most derived instance),正像你说的那样,因为在最底层派生的构造函数执行之前,虚表还没有完全被初始化。另一种说法是派生类还没有被创建。
Figure 2 虚拟函数 TestSimilarly
当你从析构函数中调用虚函数时,C++ 调用该基类的析构函数,因为派生类已经被销毁(其析构已经被调用)。虽然这个行为可导致异常结果(此即为什么从构造函数或析构函数中调用虚函数被认为是糟糕的编程实践的原因),它是大多数 C++ 程序员必须了然于心的基本常识。
正如你所指出的那样,在 C# 有所不同。托管对象――无论是在 C#,托管 C++ 中,还是任何其它的 .NET 兼容语言中――是作为其最终类型被创建的,也就是说,如果你从构造函数或析构函数中调用虚函数,系统调用的是最末层派生的函数。
Figure 1 VirtFnTest
////////////////////////////////////////////////////////////////
// MSDN Magazine — November 2004
// To compile:
cl /clr VirtFnTest.cpp
#include & stdio.h &
#include & vcclr.h &
#using & mscorlib.dll &
using namespace S
/////////////////
// C++ native base class. Ctor calls virtual fn: always calls Base fn.
class Base {
printf(" Base::ctor\n");
printf(" Base::dtor\n");
Goodbye();
virtual void Hello()
{ printf(" Base::Hello\n"); }
virtual void Goodbye() { printf(" Base::Goodbye\n"); }
// Derived native C++ class overrides fn, but not called from ctor.
class Derived : public Base {
printf(" Derived::ctor\n");
~Derived()
printf(" Derived::dtor\n");
virtual void Hello()
{ printf(" Derived::Hello\n"); }
virtual void Goodbye() { printf(" Derived::Goodbye\n"); }
// Managed base class. Ctor calls virtual fn: always calls most derived
// override.
public __gc class MBase {
printf(" Base::ctor\n");
~MBase() {
printf(" Base::dtor\n");
Goodbye();
virtual void Hello()
{ printf(" Base::Hello\n"); }
virtual void Goodbye() { printf(" Base::Goodbye\n"); }
// Managed derived class overrides virtual fn.
public __gc class MDerived : public MBase {
MDerived()
printf(" Derived::ctor\n");
~MDerived()
printf(" Derived::dtor\n");
virtual void Hello()
{ printf(" Derived::Hello\n"); }
virtual void Goodbye() { printf(" Derived::Goodbye\n"); }
int main()
printf("Create native object:\n");
Derived *pd = new Derived();
printf("Destroy native object:\n");
printf("\nCreate managed object:\n");
MDerived *pmd = new MDerived();
printf("Destroy managed object:\n");
// force dtor call
Figure 1所示程序举例说明了这一点。如果你编译并运行这个程序,你会看到 Figure 2 所示输出。这种行为对于 C++程序员来说似乎有些奇特。它意味着在派生类被初始化之前,你可以调用某个派生类型的虚拟函数――也就是说在其构造函数运行之前。同样,如果你从基类析构函数中调用虚函数,该函数是在派生类被销毁之后运行的――也就是说在析构函数被调用之后。那么先不说这种差别存在的原因,刚才不是还说从构造函数/析构函数中调用虚函数被认为是糟糕的实践。
为什么微软的家伙们要像这样来设计 C# 呢?因为它简化了内存管理。垃圾收集器为了释放内存,它需要知道对象有多大。如果 C# 像 C++ 那样构造对象,那么你可能会碰到这样一种情况:有两个对象,Obj1 和 Obj2,下面这两条语句都为真:
typeof(Obj1)==typeof(Obj2)
sizeof(Obj1)!= sizeof(Obj2)
因为对象之一是被部分构造。(不要忘了垃圾收集器是异步运行的。)通过将对象构造成最终类型,垃圾收集器能从其类型决定对象的大小。如果 C# 像 C++ 那样进行部分构造,则垃圾收集器将需要更多的代码来决定部分构造对象的真实大小。这样将带来复杂性和性能下降,首先要解决这个问题很让人气馁,所以为了较快的垃圾收集利益,微软的家伙们决定像上面那样来实现 C#。有关这方面的讨论参见 Raymond Chen 的 blog:“The Old New Thing”。
在 2004 三月的专栏中,你展示了如何改变文件打开对话框的最新视图状态设置,但没有涉及到保存这个用户使用的最新视图设置。我遇到的问题是读取用户已有的打开文件对话框设置。我只找到直接读取列表框信息的方法,但当用户选择缩略图模式时,那样做不能得到正确的信息。对此你有没有解决办法?
Maarten van Dillen  
我正在用公共的 CFileDialog 类做开发,应该不是很难,但事情似乎并不是那样。我想强制文件打开对话框的视图模式为缩略图。我要用 Visual C++ 来做,你能否提供一些建议?
Elliot Leonard  
有几个读者都在问文件打开对话框中的缩略图问题。在我三月份的专栏中,我示范了如果向文件打开对话框中的 SHELLDLL_DefView 专用窗口发送 WM_COMMAND 消息以设置不同的视图模式――但你如何知道当前所处的模式是哪一个呢?你必须获取列表控件并调用 CListCtrl::GetView:
// in dialog class
HWND hlc = ::FindWindowEx(m_hWnd,
NULL, _T("SysListView32"), NULL);
CListCtrl* plc = (CListCtrl*)CWnd::FromHandle(hlc);
DWORD dwView = plc-&GetView();
CListCtrl::GetView 返回 LV_XXX 代码之一,但正像 Maarten 发现的那样,Windows 对图标模式和缩略图模式都返回 LV_VIEW_ICON。
那么如何区分到底是哪种视图模式呢?我绞尽脑汁并钻进头文件查找,最后发现一个叫 LVM_GETITEMSPACING 的消息,该消息是作什么用的呢――用来获取图标间隔。顾名思义,图标间隔是图标视图模式中图标之间的像素间隔。LVM_GETITEMSPACING 不是很好使用,以至于 MFC 都没有对之进行包装(比如说 MFC 中并没有 CListCtrl::GetIconSpacing 这样的函数)。所以在 MFC 中你得自己发送消息:
CSize sz = CSize(plc-&SendMessage(LVM_GETITEMSPACING));
Windows 按照通常方式返回尺寸,在高位和低位字中编码的 cx/cy,然后CSize很礼貌地为你进行解码。一旦有了图标间隔,你便可以将它与 GetSystemMetrics(SM_CXICONSPACING) 返回的系统间隔值进行比较。如果列表视图的图标间隔与系统的一样,则视图是图标模式。如果大于系统间隔,则视图为缩略图模式:
if (sz.cx & GetSystemMetrics(SM_CXICONSPACING)) {
// thumbnail view
// icon view
讲了那么多缩略图,接下来的问题是如何持续化不同用户会话的视图状态?对此,当程序终止时,你需要用 Profile 函数在用户配置文件中保存最后使用的模式,并在下一次启动程序时再次恢复它。我写了一个小示范程序,DlgTest。程序使用了一个实现持续化程序行为的类 CPersistOpenDlg。这个类又借助另外一个类 CListViewShellWnd,用它来封装 SHELLDLL_DefView 窗口(参见三月份专栏)。CListViewShellWnd 包含获取和设置视图模式的函数,由这些函数来区分图标和缩略图模式:
CListViewShellWnd m_wndLVSW;
m_wndLVSW.SetViewMode(ODM_VIEW_THUMBS);
CListViewShellWnd 的 OnDestroy 处理器在某个数据成员 m_lastViewMode 中保存视图模式。当对话框被销毁时,CPersistOpenDlg 的析构函数调用 WriteProfileInt 将这个值写入用户配置文件。对话框启动时,CPersistOpenDlg 给自己送一个初始化消息;该消息处理例程调用 GetProfileInt 从磁盘读取存储在配置文件中的值并设置视图模式。PostMessage 是必须调用的,因为常规初始化消息 WM_INITDIALOG 和 CDN_INITDONE 在文件对话框被完全初始化之前就会到来――有关这一点的解释参见三月份专栏。
顺便说一下,任何时候你都应该使用 GetProfileXxx 和 WriteProfileXxx 来持续化应用程序的设置。MFC 用 CWinApp 包装了这些函数。如果你在应用程序启动时调用(一般都是在 InitInstance& 函数中) CMyApp::SetRegistryKey("KeyName"),MFC 使用注册表来存储用户配置信息,而不是 INI 文件。下面是 DlgTest 用的 INI 文件:
[settings]
ViewMode=28717
偶尔在一些文字资料和 C++ 文档以及 Microsoft .NET 框架中看到术语“POD 类型”。这个术语是什么意思?
Shelby Nagwitz
你可以将 POD 类型看作是一种来自外太空的用绿色保护层包装的数据类型,POD 意为“Plain Old Data”(译者:如果一定要译成中文,那就叫“彻头彻尾的老数据”怎么样!)这就是 POD 类型的含义。其确切定义相当粗糙(参见 C++ ISO 标准),其基本意思是 POD 类型包含与 C 兼容的原始数据。例如,结构和整型是 POD 类型,但带有构造函数或虚拟函数的类则不是。 POD 类型没有虚拟函数,基类,用户定义的构造函数,拷贝构造,赋值操作符或析构函数。
为了将 POD 类型概念化,你可以通过拷贝其比特来拷贝它们。此外, POD 类型可以是非初始化的。例如:
struct RECT // value undefined
POINT *ppoints = new POINT[100]; // ditto
CS // calls ctor ==& not POD
非 POD 类型通常需要初始化,不论是调用缺省的构造函数(编译器提供的)还是自己写的构造函数。
过去, POD 对于编写编译器或与C 兼容的 C++ 程序的人来说很重要。现在,POD 来到 .NET 的环境中。在托管 C++ 中,托管类型(包括 __value 和 __gc 两者)能包含嵌入的原生 POD 类型。
Figure 3 Pod.cpp
/////////////////////////////////////////////////////////////////////
// You can embed native POD types in a managed (__gc or __value) type.
// Compile with cl /clr.
#using & mscorlib.dll &
// simple struct is a POD type
struct POINT {
// native class w/ctor: not POD!
class CPoint : public POINT {
CPoint() { x=y=0; }
// Managed __gc type
__gc class Circle {
// ok: embedded POD type
// Error: not POD!
Figure 3 展示了例举说明代码。托管的 Circle 类能包含 POINT,但无法包含 CPoint 类。如果你尝试编译 pod.cpp 会报一个 C3633 错误:“Cannot define ''m_center'' as a member of managed ''Circle'' because of the presence of default constructor ''CPoint::CPoint'' on class ''CPoint''.”(译者:意思是由于类 CPoint 有缺省的构造函数‘CPoint::CPoint’,所以不能将‘m_center’定义为托管类‘Circle’的一个成员)
.NET 限定嵌入的本地对象只能为 POD 类型的理由是这样做能安全地拷贝它们,不用担心调用构造函数,初始化虚表,或任何非 POD 类型需要的其它机制。
最多还可以输入100字
【VIP年会员制套餐】
【C/C++软件工程师实战能力集训大纲】
VC知识库发布了C/C++业界的“本草纲目”
【牛人都在千人一号群! 加群三步走!!!】
第一步:请必须加VC知识库QQ: 为好友;
第二步:请必须关注本站微博:
第三步:申请加入群:.(必须将关注微博截屏发到QQ方可通过!)
【最新2013:】
全部100% VC++源码提供: E-Form++全新大型SCADA & HMI解决方案源码、CAD解决方案源码、Gis解决方案源码 、电力石油化工仿真与图形建模解决方案源码、大量其他高级制图VC++源码下载!
【 新视频发布】
o o o o o o o o o o
在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。...
在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。...
本文介绍了套接字编程的基本知识。...受到一个回复的启发,来做一个小调查,不谈移民,不谈其他实质操作,只问,从概念上,你想不想做一个中国人,假设你可以选的话,为什么?
| 更新于 2周前
我反正不想做中国人,哈哈
共124条回复
我反正很嫌弃自己了!
@ 为什么嫌弃自己?
我只想做个快乐的地球人,爱去哪去哪。
国家的观念害苦我了,我不会给孩子传递任何爱国的概念。学校洗的话要坚决反洗。
爱地球,差不多了,因为目前还没发现其他可用的球。
不想,太苦逼了~
想,对中国传统的文化有很大的兴趣,比如书法,如果有机会,我一定会好好学习研究的
i'm proud i'm a Chinese. i love china, but i don't love the Communist Party.
but, i hope the Communist Party will be finer.
俺国家概念淡薄。。。
若是从美食和文化(现在文化的概念都慢慢淡化了,都追着世界其他国家的潮流了)上来说我很愿意做个中国人。
若是谈教育谈环境健康的话我更希望我的下一代是在国外出生长大。
@ 拽英文是为了装B.
finer的语法是不是用错了? 还是没有变好的可能了?
本帖有124个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
),然后在出现的“enter code here”处贴入你的代码。
回复特定回复的时候,请点击该回复右侧的回复链接,系统将自动创建楼号和@通知。
@他人的时候注意,id后面请加一个空格。
使用左侧工具栏“贴链接”按钮()创建的优酷、土豆、youtube视频链接,将自动生成播放区域,不需要使用其他包含方式。
如果要创作长篇格式复杂的帖子,本站建议Mac用户使用,离线写好,贴入即可。}

我要回帖

更多关于 android 选中放大效果 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信