以下代码给出了void b() { m = &A::a; };声明A::a()受保护的编译错误.(它是 - 但这应该没问题)
然而编译器在我写的时候并不关心B::a().即使两者都意味着我想要的相同,A::a()因为它明确表示a()在A中定义.
那么禁止的原因A::a()是什么?
编辑
也许有人可以找到一个例子,如果A::a()允许的话会有问题B::b().如果有这样的例子,我会将其标记为问题的答案.
/编辑
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdio>
class A {
protected:
void a(){ std::cout << "A::a()" << std::endl; };
};
typedef void (A::*f)();
class B : public A {
public:
void b() { m = &A::a; }; // wont compile
// void b() { m = …Run Code Online (Sandbox Code Playgroud) 我有一个树形图给我作为图像.由于它不是很大,我可以"手动"构建它到R对象中.
所以我的问题是如何手动创建一个树形图(或"hclust")对象,当我所有的是树形图像?
我看到有一个叫做"as.dendrogram"的函数但是我无法找到如何使用它的例子.
(PS:这篇文章是由以下我的问题在这里)
非常感谢,Tal
好吧,这更像是"到底是怎么回事?" 而不是一个实际问题.但鉴于我对C的相对缺乏经验,它可能会导致更大的问题.
基本上,我正在解析wav文件的标题并获取值.在我的头文件中,我定义了类变量:
short channels;
int sampleRate;
int bytesPerSecond;
short bytesPerSample;
short bitsPerSample;
unsigned int size;
Run Code Online (Sandbox Code Playgroud)
并且类中用于获取这些值的函数如下:
NSData * fileData = [[NSData alloc] initWithContentsOfFile:filePath];
[fileData getBytes:&channels range:CHANNELS_R];
[fileData getBytes:&sampleRate range:SAMPLES_R];
[fileData getBytes:&bytesPerSecond range:BYTES_PER_SEC_R];
[fileData getBytes:&bytesPerSample range:BYTES_PER_SAMPLE_R];
[fileData getBytes:&bitsPerSample range:BITS_PER_SAMPLE_R];
[fileData getBytes:&size range:LENGTH_R];
Run Code Online (Sandbox Code Playgroud)
范围先前定义:
const NSRange CHANNELS_R = {22,23};
const NSRange SAMPLES_R = {24,27};
const NSRange BYTES_PER_SEC_R = {28,31};
const NSRange BYTES_PER_SAMPLE_R = {32,33};
const NSRange BITS_PER_SAMPLE_R = {34,35};
const NSRange LENGTH_R = {40,43};
Run Code Online (Sandbox Code Playgroud)
这工作正常,我得到所有的值,但是,如果我按顺序移动其中一行,或者在标题中的一个变量定义,它们会得到一个完全不同的值.例如,我正在进行的测试wav的采样率为8000.使用上面的代码我得到了正确的值.但是如果我移动指定它的值超过通道线的值,我得到524288000.太棒了.基本上,如果给出变量的顺序,它们的值与它们的定义顺序不对应,那就会混淆它.范围似乎对此行为没有任何影响.
任何人都知道这里发生了什么?
我的 XML 文件是
<?xml version="1.0" encoding="ISO-8859-1"?>
<T0020
xsi:schemaLocation="http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.safersys.org/namespaces/T0020V1">
<INTERFACE>
<NAME>SAFER</NAME>
<VERSION>04.02</VERSION>
</INTERFACE>
<TRANSACTION>
<VERSION>01.00</VERSION>
<OPERATION>REPLACE</OPERATION>
<DATE_TIME>2009-09-01T00:00:00</DATE_TIME>
<TZ>CT</TZ>
</TRANSACTION>
<IRP_ACCOUNT>
<IRP_CARRIER_ID_NUMBER>564182</IRP_CARRIER_ID_NUMBER>
<IRP_BASE_COUNTRY>US</IRP_BASE_COUNTRY>
<IRP_BASE_STATE>AR</IRP_BASE_STATE>
<IRP_ACCOUNT_NUMBER>67432</IRP_ACCOUNT_NUMBER>
<IRP_ACCOUNT_TYPE>I</IRP_ACCOUNT_TYPE>
<IRP_STATUS_CODE>100</IRP_STATUS_CODE>
<IRP_STATUS_DATE>2008-02-01</IRP_STATUS_DATE>
<IRP_UPDATE_DATE>2009-06-18</IRP_UPDATE_DATE>
<IRP_NAME>
<NAME_TYPE>LG</NAME_TYPE>
<NAME>LARRY SHADDON</NAME>
<IRP_ADDRESS>
<ADDRESS_TYPE>PH</ADDRESS_TYPE>
<STREET_LINE_1>10291 HWY 124</STREET_LINE_1>
<STREET_LINE_2/>
<CITY>RUSSELLVILLE</CITY>
<STATE>AR</STATE>
<ZIP_CODE>72802</ZIP_CODE>
<COUNTY>POPE</COUNTY>
<COLONIA/>
<COUNTRY>US</COUNTRY>
</IRP_ADDRESS>
<IRP_ADDRESS>
<ADDRESS_TYPE>MA</ADDRESS_TYPE>
<STREET_LINE_1>10291 HWY124</STREET_LINE_1>
<STREET_LINE_2/>
<CITY>RUSSELLVILLE</CITY>
<STATE>AR</STATE>
<ZIP_CODE>72802</ZIP_CODE>
<COUNTY>POPE</COUNTY>
<COLONIA/>
<COUNTRY>US</COUNTRY>
</IRP_ADDRESS>
</IRP_NAME>
</IRP_ACCOUNT>
</T0020>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下 XSLT 将我的 xml 文件拆分为多个 xml 文件。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:t="http://www.safersys.org/namespaces/T0020V1" version="2.0">
<xsl:output method="xml" indent="yes" name="xml" />
<xsl:variable name="accounts" …Run Code Online (Sandbox Code Playgroud) 如何从C++字符串中删除最后一个字符?
我试过st = substr(st.length()-1);但它没用.
问候,你能帮忙吗?我需要以字符串格式获取变量(名称).例如下面我需要将"test"显示为字符串.
int test = 69;
//below does not work
MessageBox.Show((string)test);
// below works but displays the int value
MessageBox.Show(test.ToString());
Run Code Online (Sandbox Code Playgroud)
感谢您的时间.
我有一个枚举:
public enum ShipOrientation
{
North,
East,
South,
West
}
Run Code Online (Sandbox Code Playgroud)
我根据方向进行一些处理,如果是int,则应用enum North方向.
我正在将http GET查询字符串解析为其组件.在尝试使其模块化(参数的数量和类型可以变化很大)时,我希望有一个参数抽象基类或接口来定义是否已设置属性,以及设置方法的Set方法值.有没有办法用Set方法的变量参数类型做到这一点?
总体思路如下:
public abstract class Parameter
{
public bool IsSet { get; protected set; }
protected Parameter() { IsSet = false; }
public abstract void Set( --unknown type here-- );
}
Run Code Online (Sandbox Code Playgroud)
一个示例参数子将是这样的:
public class IntParameter : Parameter
{
public int Value { get; protected set; }
public void Set(int value)
{
Value = value;
IsSet = true;
}
}
Run Code Online (Sandbox Code Playgroud)
通过这种结构,我可以将每个查询参数抛入其适当的强类型类中,但仍然确保所有这些都是一致的.IsSet属性的原因是能够检查参数是否已设置,因为某些参数没有任何"安全"值,我肯定不会故意传递这些值.如果未设置值,则会获得一个默认值.
看看这个问题,我怀疑它是否可以像我想要实现它那样处理,但是这个例子应该能够了解我希望能够做到的事情.
有没有关于如何最好地处理它的建议.如果有一个方便的设计模式或常见的方式,我不会感到惊讶,但我没有设法谷歌一个.
我看到的选项是:
还有其他想法吗?:)
有点卡住尝试在Jquery中实现某些东西,并想知道是否有人可以协助..
我正在创建我自己的编辑就地功能,您可以在其中单击编辑按钮,我的定义列表的内容将被替换为表格...预填充数据.与此类似
一切都很好,除了每个可编辑部分(用户注释)被标记,并且可以有多个标签,就像在stackoverflow上这样...所以我的HTML输出每个评论的标签是这样的
<dl id='comment_id'>
<dt class="comment title">#i.getsTitle()#</a></dt>
// Other info
<dd class="categories">
<dl>
<dt>Tags:</dt>
<cfloop array="#i.getCategory()#" index="ii">
<dd class="category"><a href="">#ii.getsCategory()#</a></dd>
</cfloop>
</dl>
</dd>
Run Code Online (Sandbox Code Playgroud)
所以我将我的类别或标签嵌套在一个由循环控制的定义列表中.
到目前为止我尝试做的是使用Jquery获取这些catergories的内容,这样当你点击编辑时,类别表单字段将预先填充该评论的现有标签....
$('.edit').click(function(){
// Grab the text for all categories
var sCategory = $(this).parents('dl').find('dd.categories dl dd.category').text();
//Build a form and prefill the category form field with the sCategory Variable
form + '' // Other Data to build form
form += '<dl><input name="sCategory" type="text" value="' + sCategory + '" /></dl>'
// Show edit form prefilled …Run Code Online (Sandbox Code Playgroud)