class Temp
{
private:
~Temp() {}
friend class Final;
};
class Final : virtual public Temp
{
public:
void fun()
{
cout<<"In base";
}
};
class Derived : public Final
{
};
void main()
{
Derived obj;
obj.fun();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码试图实现不可继承的类(final).但是使用上面的代码仍然可以创建派生的对象,为什么呢?
只有当ctor私有化时才能实现所需的功能,我的问题是为什么在dtor私有的情况下无法实现?
您可以使用当前字体获取字符串的宽度,stringwidth虽然这实际上会推动堆栈上的偏移坐标,但y值似乎总是无用的.有没有办法确定字符串的确切高度,可能包括也可能不包括下行链接?
是否可以使用箭头键并输入/ tab在NSTableView周围导航NSTableView的可编辑单元格?例如,我想让它感觉更像电子表格.
该应用程序的用户需要编辑相当多的单元格(但不是全部),我认为如果他们不必双击每个单元格,那么这样做会更容易.
我正在编写一个程序,其中性能非常重要,但并不重要.目前我正在FILE*逐行阅读文本,我fgets用来获取每一行.在使用了一些性能工具之后,我发现我的应用程序运行时有20%到30%的时间在内部fgets.
有没有更快的方法来获得一行文字?我的应用程序是单线程的,无意使用多个线程.输入可以来自stdin或来自文件.提前致谢.
假设我有一个NSString(或NSMutableString)包含:
I said "Hello, world!".
He said "My name's not World."
Run Code Online (Sandbox Code Playgroud)
将其转化为以下内容的最佳方法是:
I said \"Hello, world!\".\nHe said \"My name\'s not World.\"
Run Code Online (Sandbox Code Playgroud)
我是否必须手动使用-replaceOccurrencesOfString:withString:一遍又一遍来转义字符,还是有更简单的方法?这些字符串可能包含其他字母/语言的字符.
如何在其他语言中使用其他字符串类完成此操作?
是否有为64位版本定义的简单预处理器宏?我认为_WIN64可能是它,但即使我构建一个32位目标,包含在a #ifdef _WIN64 ... #endif中的部分也会编译进来,这会导致问题.这是周五,我不能直接思考,但我确信我在这里忽略了一些非常简单的事情.甚至一些涉及sizeof.
我有一个基于文档的应用程序,我已经分类NSDocument并提供了所需的方法,但我的文档需要一些广泛的清理(需要运行外部任务等).把它放在哪里最好的地方?我尝试过几种不同的方法,例如:
closeclose:canCloseDocumentWithDelegate:shouldCloseSelector:contextInfodealloc如果我把它放入dealloc,有时它会被调用,有时它不会被调用(按下Command + Q似乎绕过我的文件的释放),但是必须在没有失败的情况下调用此代码(除非程序意外终止).
使用POSIX shell时,如下所示
touch {quick,man,strong}ly
Run Code Online (Sandbox Code Playgroud)
扩展到
touch quickly manly strongly
Run Code Online (Sandbox Code Playgroud)
哪个会触及文件quickly,manly和strongly,但是可以动态创建扩展吗?例如,以下说明我想要做什么,但由于扩展顺序不起作用:
TEST=quick,man,strong #possibly output from a program
echo {$TEST}ly
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?如果需要,我不介意将自己限制在Bash.我也想避免循环.扩展应该作为任意程序的完整参数给出(即,对于每个文件,程序不能被调用一次,对于所有文件只能调用一次).我知道xargs但我希望它能以某种方式从shell中完成.
我正在通过ReadDirectoryChangesW同步调用来查看目录.当一个新文件可用时,我尝试CreateFile使用GENERIC_READ和立即访问它FILE_SHARE_READ,但这给了我ERROR_SHARING_VIOLATION.将文件放入监视目录的过程在我尝试读取它时没有完成写入.
有没有办法可靠地等到文件可供读取?我可以将方法放入如下所示的循环中,但我希望有更好的方法.
while ((hFile = CreateFile (path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
{
if (GetLastError() == ERROR_SHARING_VIOLATION)
Sleep (500);
else
break; // some other error occurred
}
if (hFile == INVALID_HANDLE_VALUE)
{
// deal with other error
return 0;
}
ReadFile (...);
Run Code Online (Sandbox Code Playgroud) cocoa ×4
c ×3
macos ×3
file-io ×2
objective-c ×2
string ×2
64-bit ×1
bash ×1
c++ ×1
date ×1
fgets ×1
final ×1
fonts ×1
inheritance ×1
metrics ×1
nsdate ×1
nsdocument ×1
optimization ×1
postscript ×1
shell ×1
stdin ×1
synchronous ×1
visual-c++ ×1
winapi ×1
windows ×1